[英]Rails 'params' variable
参考这个
我在这样的网络表单中创建了一个问题:
<div class="form_row">
<label for="features[]">Features:</label>
<% [ 'scenarios', 'role_profiles', 'private_messages', 'polls' ].each do |feature| %>
<br><%= check_box_tag 'features[]', feature,
(params[:features] || {}).include?(feature) %>
<% end %>
</div>
因此,如果场景和 private_messages 被检查并且我打印出params[:features]
我将得到:scenesprivate_messages
我想知道如何才能从参数中单独获取场景和 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]
分配给 controller 中的实例变量,然后在您的视图中对其进行迭代。
但是要回答您的问题,您将 output 的等号放在错误的位置。 您希望 output 单独地数组的每个元素,而不是输出循环的结果。
你必须使用humanize
:
<% params[:features].each do |param| %>
<%= param.humanize %>
<% end %>
根据这篇博客文章,您应该能够以params[:features]['scenarios']
等的形式单独访问它们。循环应该与所有其他 arrays 一样工作——例如
params[:features].each { |param|
# do something with param
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.