У меня есть модели 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
но я не знаю, как это сделать из внешнего интерфейса.