为什么我需要在控制器中手动获取params?

时间:2014-10-31 03:15:21

标签: ruby-on-rails model-view-controller

我正在尝试使用本地人渲染部分内容。一切都运行良好,除了传递的值永远不会存储在数据库中,除非我手动获取控制器中的参数并保存它。

查看:topics / show.html.erb

<%= render :partial => 'linktags/form', locals: {linktag: @linktag, topic: @topics.id} %>

部分:linktags / _form.html.erb

<%= hidden_field_tag(:post_id, topic) %>

Controller:linktag_controller.rb

def create
@linktag = Linktag.new(linktag_params)
@linktag.post_id = params[:post_id]
.....
.....
end

那么为什么我需要获取post_id参数来保存值?当我点击提交时为什么不保存? post_id参数也是一个允许的参数。

def linktag_params
  params.require(:linktag).permit(:url, :name, :favicon, :post_id)
end

1 个答案:

答案 0 :(得分:4)

使用表单对象,因为我相信您正在使用form_for

喜欢<%= f.hidden_field :post_id, :value => topic %>