У меня есть модель User
и Group
. User
has_many
Groups
и Group
belongs_to
User
ассоциации в рельсах с переднего конца
У меня уже есть записи в таблице пользователей:
id name
--------------
1 testuser
2 someotheruser
Представьте, если пользователь с идентификатором 1 (testuser)
опознан и я хочу, чтобы создавать группы внутри этого пользователя.
Когда я создаю новую группу из нового действия в контроллере группы запись в БД собирается так:
id groupname user_id
------------------------
1 groupA
2 groupB
, как вы видите, user_id, столбец всегда будет как пустые, так что ассоциация не там.
Что мне нужно сделать, чтобы сделать эту связь?
код 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
код 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>
Я новичок рельсам скажите, пожалуйста, как сделать связь с пользователем. С помощью консоли я могу сделать ассоциацию путем добавления групп для пользователей, как это:
@u = User.find(1)
@u.groups.create(:groupname=>"groupA")
@u.save
, но я не знаю, как получить это сделано от переднего конца.
спасибо, я попробую это. Я собирался попытаться пропустить скрытое поле с user_id, но это намного лучше – Patrick