Rails 参数允许我收到错误

Rails params permit I am getting error

我正在尝试创建一个表单,我在其中放置隐藏值,该值生成一个数组,如下所示:

"comment"=>{"comment"=>"sss", "feed_id"=>"354"}, "commit"=>"Comment"}

但是当我尝试在控制器中使用允许它产生错误时,我的控制器查询是这样的:

@feeds= Feed.find(params["comment"]["feed_id"]) 

这个@feeds 很好用,但是当我尝试将它与许可参数一起使用时,它显示错误

ActionController::ParameterMissing (param is missing or the value is empty: feed):

允许我使用这个查询:

 def feed_params

      #params.require(:feed).permit(comment: :feed_id)
      params.require(:feed).permit(comment: [ :feed_id, :comment ])
      #params[:market_place]
    end

当我像这样在我的控制器中添加它时:

@feeds= Feed.find(feed_params)

我遇到了这个错误

ActionController::ParameterMissing (param is missing or the value is empty: feed):

这是我的表格:

 <%= form_for(@comment,:remote  => true)  do |f|  %>


<%= f.text_area :comment,  class:"form-control  post required" %>
<%= f.hidden_field :feed_id, {:value => @feed} %>

如果您将 feed_params 写入 require(:feed),那么 Rails 将期望 params 具有 "feed" 键和值,而实际上没有。您的表单用于 comments,因此您实际上定义了一个 comment_params 方法。像这样定义它:

def comment_params
  params.require(:comment).permit(:comment, :feed_id)
end

然后像这样找到您的 Feed:

@feeds= Feed.find(comment_params["feed_id"]) 

你应该一切就绪。