我在form_for中使用了隐藏的标签。它没有将值传递给控制器。我已经更新了params.require以允许该字段,但由于某种原因它没有传递该值。
我在控制台上收到的消息:ArgumentError(错误的参数数量(给定1,预期为2)
posts_controller.rb
def confirm
@post = Post.find_by(id: params[:id])
@post.toggle!(:confirm)
@post.update_attribute(props: params[:props])
redirect_to root_url
end
feed.html.erb
<%= form_for @post, :html => {:class => "form-inline"}, url: confirm_post_path(feed), method: :patch, :remote=>true do |f| %>
<div class="form-group">
<label class="sr-only"><%= f.label :props %></label>
<%= f.select :props, ['one', 'two', 'three'], class: 'form-control', prompt: "Give Prop" %>
</div>
<div class="form-group">
<%= f.submit "Confirm", class: "btn-primary btn-xs form-control" %>
</div>
<% end %>
答案 0 :(得分:1)
我忽略了一些简单的事情。我强大的params被命名为post_parms所以我改变了:
@post.update_attribute(props: params[:props])
到
@post.update_attribute(:props, post_params[:props])