Rails params允许我收到错误

时间:2015-08-16 19:54:07

标签: ruby-on-rails params

我正在尝试创建一个表单,其中我将隐藏的值生成一个数组,如:

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

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

@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} %>
  

1 个答案:

答案 0 :(得分:1)

如果您将feed_params写入require(:feed),则Rails会希望params拥有"feed"密钥和值,而不是comment_params。您的表单适用于评论,因此您实际上定义了def comment_params params.require(:comment).permit(:comment, :feed_id) end 方法。像这样定义:

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

然后找到你喜欢的Feed:

npm install

你应该全力以赴。