[英]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.