J'ai un modèle User
et Group
. User
has_many
Groups
et Group
belongs_to
User
associations dans les rails de l'extrémité avant
J'ai déjà entrées dans la table utilisateur:
id name
--------------
1 testuser
2 someotheruser
si l'utilisateur Imaginer avec identifiant 1 (testuser)
est connecté et je veux créer des groupes à l'intérieur de cet utilisateur.
Lorsque je crée un nouveau groupe de nouvelle action dans le contrôleur du groupe les entrées de la base de données va comme ceci:
id groupname user_id
------------------------
1 groupA
2 groupB
comme vous le voyez, user_id, colonne va toujours aussi vide si l'association est pas ici.
Que dois-je faire pour créer cette association?
code pour GroupsController
:
def new
@group = Group.new
end
def create
@group = Group.new(params[:group])
if @group.save
flash[:notice] = "Successfully created group."
redirect_to groups_url
else
render :action => 'new'
end
end
code pour views/groups/new.html.erb
<% title "New Group" %>
<% form_for @group do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %><br />
<%= f.text_field :name %>
</p>
<p>
<%= f.label :description %><br />
<%= f.text_field :description %>
</p>
<p><%= f.submit %></p>
<% end %>
<p><%= link_to "Back to List", groups_path %></p>
Je suis nouveau sur les rails s'il vous plaît me dire comment faire l'association avec l'utilisateur. A partir de la console que je suis capable de faire l'association en ajoutant des groupes pour un utilisateur comme ceci:
@u = User.find(1)
@u.groups.create(:groupname=>"groupA")
@u.save
mais je ne sais pas comment obtenir ce fait de l'extrémité avant.
merci, je vais essayer ça. J'allais essayer l'approche de passer le champ caché avec user_id mais c'est beaucoup mieux – Patrick