Je les modèles suivants:Rails de balise select en utilisant belongs_to association
Produit:
class Product < ActiveRecord::Base
belongs_to :user
...
end
utilisateur
class User < ActiveRecord::Base
has_many :products
end
Dans mes articles voir je besoin d'une liste déroulante des utilisateurs et Lorsqu'un utilisateur est sélectionné, il doit être associé à ce produit spécifique.
Ceci est mon point de vue:
<%= form_tag (update_user_products_path) do %>
<%@products.each do |product| %>
<div class = "prod">
<a href='<%= recommendations_path(:product_id => product.id, :rating_set_id => params[:rating_set_id]) %>' target="_blank"><img src='<%= product.cover_img %>' class='product_image_prods'></img></a>
<div class= "title"><small><b><%= link_to truncate(product.title, :length =>30), recommendations_path(:product_id => product.id, :rating_set_id => params[:rating_set_id]), :target => '_blank' %></b></small></div>
<br/>
<div><em>Current Rating: <%= product.rating %> </em></div>
<%= hidden_field_tag :product_id, product.id %>
<%= select_tag "user_id", options_for_select(User.all.collect {|u| [ u.name, u.id ] })%>
</div>
<% end %>
<%= submit_tag %>
<% end %>
Je suis confus quant à savoir si je devrais utiliser form_tag et mis à jour Product.user_id, ou devrais utiliser nested_attributes pour le modèle d'utilisateur dans mon produit à partir?
MISE À JOUR:
Produits Contrôleur d'action:
def update_user
@product = Product.find(params["product_id"])
@product.update_attribute(:user_id, params[:user_id])
redirect_to :back, :flash => { :notice => "Updated users" }
end
également mis à jour mon avis. Comment puis-je mettre à jour tous les enregistrements de produit avec l'id_utilisateur correct? Actuellement, lorsque je soumets mon, il met à jour seulement 1 enregistrement de produit.
Comment allez-vous les associer? avec Ajax ou sur le formulaire soumettre? –
sur le formulaire soumettre. – Yogzzz
S'il vous plaît voir ma question mise à jour. – Yogzzz