如何在自定义中传递非表单数据 form_for

How to pass non-form data in a custom form_for

我有一个表格,我可以像这样传递相关数据:

form_for(@question, url: create_question_path(category_id: @category.id)) do |f|
  f.text_field :content
  submit_tag "Save"
save

如何在与 content 相同的嵌套级别上获取 category_id,以便 strong parameters 对其求值?

您可以将其作为标签包含在内,如果我理解正确,您希望将其隐藏,所以:

hidden_field_tag 'category_id', @category.id

现在它将作为 params[:category_id] 而不是 params[:questions][:category_id] 提交,以便在您的控制器中解决它 create before_filter:

def prepare_params      
  params[:question][:category_id] = params[:category_id]
  params.delete :category_id
end