我正在尝试使用本地人渲染部分内容。一切都运行良好,除了传递的值永远不会存储在数据库中,除非我手动获取控制器中的参数并保存它。
查看: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
答案 0 :(得分:4)
使用表单对象,因为我相信您正在使用form_for
喜欢<%= f.hidden_field :post_id, :value => topic %>