ビューからControllerメソッドを呼び出しているシナリオがあります。これは、ページの配列を返します。これは、nilであるか、値を持っている必要があります。forループでその配列を反復して、動的リストを生成する必要があります。 view.plsヘルプ
1 に答える
0
コントローラにロジックを実装することは、通常、ロジックを対応するモデルに移動することはお勧めできません。
ただし、本当に必要な場合は、controller
変数を使用して、ビューから実際のコントローラーに到達できます。
例:
<p>
Now we're printing out the result of the some_method:
<%= controller.some_method.inspect %>
</p>
戻り値の反復は簡単です。
<ul>
<% controller.some_method.each do |item| -%>
<li>item.inspect</li>
<% end -%>
</ul>
おそらく、コントローラーでのメソッドの可視性は公開されていないため、メソッドを使用する必要がある場合がありますObject#send
。
<%= controller.send(:my_protected_method).inspect %>
アップデート
To handle the nil
reponse, I would create a helper method in the ApplicationHelper
class:
def my_method
(controller.my_method || [])
end
And then in the view:
<% my_method.each do |item| -%>
<%= item.inspect %>
<% end %->
于 2012-07-30T11:44:23.687 に答える