2017-05-31 6 views
1

J'utilise une étiquette masquée dans un formulaire_for. Il ne transmet pas la valeur au contrôleur. J'ai mis à jour le params.require pour autoriser le champ, mais pour une raison quelconque, il ne passe pas la valeur.Passage des paramètres à l'aide de form_for ne pas passer les paramètres au contrôleur

Le message que je reçois sur ma console: ArgumentError (mauvais nombre d'arguments (données 1, attendu 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

Quelle imprime la console lorsque vous faites la demande? –

+0

'étiquette cachée'? label ne contribue pas à la forme des valeurs de soumission ... – wesley6j

+0

@ SebastiánPalma J'ai ajouté la requête console dans ma question. Est-ce que c'est ce que tu cherchais? –

Répondre

1

J'ai négligé quelque chose de simple, mes paramètres forts ont été nommés post_parms, donc j'ai changé:

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

à

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