我在控制器中创建了一个新操作 groups_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_member 定义为:
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
所以当我做 rake 路线时,我得到:
add_member_group GET /groups/:id/add_member(.:format) groups#add_member
所以,当我在我的 Show 模板上使用它时它可以正常工作
<%= link_to "Join", add_member_group_path(:user =>current_user.id, :group=> invitation.group.id) , :class => 'btn-primary' %>
但是当尝试在我的索引模板中使用相同的链接时,我得到一个路由错误:
ActionController::RoutingError at /groups
No route matches {:action=>"add_member", :controller=>"groups", :user=>1, :group=>12}
知道我在这里想念什么吗?我在这里尝试了答案,但这并没有成功。
谢谢