参考这个
我在这样的webform中创建了一个问题:
<% [ 'scenarios', 'role_profiles', 'private_messages', 'polls' ].each do |feature| %>
<%= check_box_tag 'features[]', feature, (params[:features] || {}).include?(feature) %> <% end %>
因此,如果检查了scenario和private_messages并打印出来,params[:features]
我会得到:scenariosprivate_messages
我想知道如何能够从params中分别获取方案和private_messages.是映射params[:features] = "scenariosprivate_messages"
还是真的params[features] = ["scenarios", "private_messages"]
?如果是后者我怎么能循环它们?
我写在我看来:
<%= params[:features].each {|param| param.capitalize } %>
我还是刚scenariosprivate_messages
打印出来的.
试试这个:
<% params[:features].each do |param| %> <%= param.capitalize %> <% end %>
原始解决方案的问题在于您打印出块的结果,即块本身,而不是打印出阵列的每个元素.
你不应该params
在你的观点中使用.您最好params[:features]
在控制器中分配一个实例变量,然后在视图中迭代它.
但是要回答你的问题,你要把输出的等号放在错误的地方.您希望单独输出数组的每个元素,而不是输出循环的结果.