在rails中,我有这个checkbox标签,如果一个元素包含在post数组中,那么check值应为true。
- checked = (params[:comments] && params[:comments][:pictures] && params[:comments][:pictures].include?(comment.id))
=check_box_tag "comments[pictures][]", comment.id, checked
检查过的部分看起来非常难看。如果没有设置params [:comments]或params [:comments] [:pictures],如何捕获错误?我试过了
- checked = (params[:comments][:pictures].include?(comment.id)) || false
但它不起作用。
答案 0 :(得分:3)
我建议您安装simple_form
并使用:
= simple_form_for @comment do |f|
= f.association :pictures, :as => 'boolean'
答案 1 :(得分:0)
您可以合并默认值的哈希值,然后您确定有一个参数[:comments] [:pictures]值(在此实例中为空数组):
params = {:comments => {:pictures => []}}.merge(params)
checked = params[:comments][:pictures].include?(comment.id)