使用form_for传递参数,而不是将参数传递给控制器​​

时间:2017-05-31 22:04:24

标签: ruby-on-rails parameter-passing form-for

我在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 %>

1 个答案:

答案 0 :(得分:1)

我忽略了一些简单的事情。我强大的params被命名为post_parms所以我改变了:

@post.update_attribute(props: params[:props])

@post.update_attribute(:props, post_params[:props])