I have a scenario where i am calling a Controller method from the view,that returns an array of pages,which can be either nil or must be having values.i need to iterate that array in a for loop to generate a dynamic list in my view.pls help
问问题
143 次
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 %>
更新
为了处理nil
响应,我会在ApplicationHelper
类中创建一个辅助方法:
def my_method
(controller.my_method || [])
end
然后在视图中:
<% my_method.each do |item| -%>
<%= item.inspect %>
<% end %->
于 2012-07-30T11:44:23.687 回答