0

ビューからControllerメソッドを呼び出しているシナリオがあります。これは、ページの配列を返します。これは、nilであるか、値を持っている必要があります。forループでその配列を反復して、動的リストを生成する必要があります。 view.plsヘルプ

4

1 に答える 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 に答える