我有两个模型,组和用户
用户belongs_to组和has_many用户
分组在我的群组/show.html.erb 中,我有用户注册表单
<h1>Create user</h1>
<%= form_for @user do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :email %><br />
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :password %><br />
<%= f.password_field :password %>
</div>
<div class="field">
<%= f.label :password_confirmation, "Confirmation" %><br />
<%= f.password_field :password_confirmation %>
</div>
<div class="actions">
<%= f.submit "Sign up" %>
</div>
<% end %>
要获取组和用户之间的关系,我的用户控制器中有一个创建方法,如下所示
def create
@group = Group.find(params[:group][:id])
@user = @group.users.build(params[:user])
if @user.save
flash[:success] = "You have created a new user"
redirect_to group_path
else
@title = "Create user"
render 'new'
end
end
我也尝试过: @group = Group.find(params[:id])
和
@group = Group.find(params[:group_id])
但是我仍然收到错误
本质上,我想在组/show.html.erb 中创建新用户,并将该用户与创建用户的组相关联。例如,如果用户是在组/3中创建的,如何在用户控制器中设置我的创建方法以确保这种关系成立?
总的来说,我一直在 http://ruby.railstutorial.org/chapters/user-microposts#sec:creating_microposts 遵循Hartl Rails教程书,并遵循表单和创建方法的方法。但是我不确定如何将组/3 的参数放入查找方法中,例如 @group = Group.find(?????)
有人可以启发我吗,这个问题已经困扰了我几天了。
提前致谢
提交表单后,它会将您带到用户#create。此路线没有group_id段。
要在那里传递group_id,您需要将其存储在表单的隐藏字段中。