Ruby on rails 新路线连接到在一个地方工作,而不是在另一个地方工作
我在我的控制器中创建了一个新操作,groups\u controller.rbRuby on rails 新路线连接到在一个地方工作,而不是在另一个地方工作,ruby-on-rails,routes,Ruby On Rails,Routes,我在我的控制器中创建了一个新操作,groups\u controller.rb def add_member @group = Group.find(params[:id]) @user = User.find(params[:user]) @group.add_member(@user) redirect_to :back end 在group.rb中,add_成员定义为: def add_member(user) self.working_groups.build(:user_i
def add_member
@group = Group.find(params[:id])
@user = User.find(params[:user])
@group.add_member(@user)
redirect_to :back
end
在group.rb中,add_成员定义为:
def add_member(user)
self.working_groups.build(:user_id => user.id, :position => self.users.count, :role => 'member')
self.save
end
我还创建了相应的路线:
resources :groups do
member do
get 'add_member'
end
end
因此,当我使用耙路线时,我得到:
add_member_group GET /groups/:id/add_member(.:format) groups#add_member
所以,当我在我的展示模板上使用它时,它可以正常工作
<%= link_to "Join", add_member_group_path(:user =>current_user.id, :group=> invitation.group.id) , :class => 'btn-primary' %>
你知道我在这里遗漏了什么吗?我试过答案,但没有成功
谢谢您的路线需要一个
id
参数,而您没有提供。您只提供一个用户
和一个组
在show
视图中,您的参数中已经有一个id
,因此可以重用它
在索引
视图中,您没有任何id
,因此Rails说它找不到您的路线,因为它错过了id
你应该这样写你的链接:
<%= link_to "Join", add_member_group_path(:user =>current_user.id, :id=> invitation.group.id) , :class => 'btn-primary' %>
<%= link_to "Join", add_member_group_path(invitation.group, :user =>current_user.id) , :class => 'btn-primary' %>
current_user.id,:id=>invitation.group.id),:class=>'btn primary'>
或者像这样:
<%= link_to "Join", add_member_group_path(:user =>current_user.id, :id=> invitation.group.id) , :class => 'btn-primary' %>
<%= link_to "Join", add_member_group_path(invitation.group, :user =>current_user.id) , :class => 'btn-primary' %>
current_user.id),:class=>'btn primary'>
尝试替换:'btn主“%>