我想提交一些不属于该模型对象的额外参数。这是我的代码示例
= form_for Comment.new, :url => notes_path({:pined_feed_item => ""}), :html => {class: 'form clearfix', id: 'add_post_form'}, remote: true do |form|
.control-group
= form.text_area :text, :placeholder => 'Post to the community', :cols => nil, :rows => nil, :class => 'mention expand-without-submit'
= check_box_tag :pined_feed_item
pinged post
= submit_tag "Post your message", class: 'btn btn-success btn-mini'
我想在控制器级别获取check_box值,但是当我在那里检查时它会给我空字符串
答案 0 :(得分:1)
它会为您提供一个空字符串,因为您没有设置任何值。尝试按API中描述的方式使用check_box_tag
。第二个参数(pined
)是复选框的值,第三个参数是复选框的状态(如果要检查它的话)。例如:
...
check_box_tag 'pined_feed_item', 'pined', true
# => <input checked="checked" id="pined_feed_item" name="pined_feed_item" type="checkbox" value="pined" />
...
在这种情况下,控制器中的参数数组将类似于:
# params.inspect
"...{:pined_feed_item=>"pined"}..."
因此,您可以根据此条件在控制器中进行检查
if params[:pined_feed_item] == 'pined'
...
end
答案 1 :(得分:1)
从{:pined_feed_item => ""}
删除url
。这会覆盖复选框pined_feed_item
的值。
当您选中复选框并提交表单时,您会看到pined_feed_item"=>"1"
,如果未选中并提交,则此参数不会成为params
哈希的一部分。
希望,这有帮助。
答案 2 :(得分:0)
您如何访问额外的参数?
它应该以{{1}}的形式提供。
如果您想使用params[:pined_feed_item]
访问它们,则需要将视图更改为params[:comment][:pined_feed_item]
。