【发布时间】:2011-11-27 01:21:49
【问题描述】:
我的模型设置如下:
class User
has_many :memberships, :dependent => :destroy
has_many :groups, :through => :memberships
Class Group
has_many :memberships, :dependent => :destroy
has_many :users, :through => :memberships
Class Membership
attr_accessible :user_id, :group_id
belongs_to :user
belongs_to :group
我的 MembershipController#create
def create
@membership = current_user.memberships.build(:group_id => params[:group_id])
if @membership.save
flash[:notice] = "You have joined this group."
redirect_to :back
else
flash[:error] = "Unable to join."
redirect_to :back
end
end
我的路线中有资源 :memberships 以便它可以找到创建操作。
最后,在我的 Group#show 操作中,我希望用户能够加入一个组。所以我创建了这个 form_tag
<%= form_tag(membership_path) do %>
<%= hidden_field_tag @group.id %>
<%= submit_tag "Join Group"%>
<% end %>
这会返回以下错误:
Routing Error
No route matches [POST] "/memberships/1"
我已经运行了一个 rake 路线来尝试了解我在这里缺少什么:
memberships GET /memberships(.:format) {:action=>"index", :controller=>"memberships"} POST/memberships(.:format) {:action=>"create", controller=>"memberships"} new_membership GET /memberships/new(.:format) {:action=>"new",controller=>"memberships"} edit_membership GET /memberships/:id/edit(.:format){:action=>"edit", controller=>"memberships"}
membership GET /memberships/:id(.:format) {:action=>"show", :controller=>"memberships"} PUT /memberships/:id(.:format){:action=>"update", :controller=>"memberships"} 删除 /memberships/:id(.:format) {:action=>"destroy", :controller=>"memberships"}
有人看到我的方法错误吗?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 has-many-through