我在我的會員控制器中創建了一個自定義操作req
,併爲其定義了路由。但是,當我在link_to上給出該自定義操作的路徑時,它給了我錯誤,指出未知操作,操作'show'可能沒有找到MembershipsController.I dny明白爲什麼它找到顯示操作時,我給我的自定義操作的路徑。未知的操作錯誤
以下是隸屬控制器
def req
@user =User.find_by_email(params[:email])
@group =params[:group_id]
unless @group.nil?
if Membership.request(@user.id, @group)
redirect_to :back, :notice => 'Joined successfully.'
else
redirect_to :back, :notice => 'couldnot Joine.'
end
end
end
有我的會員資格控制器內部沒有show動作在我的自定義操作。
以下是我的自定義操作路線:繼
resources :memberships do
collection do
post 'req'
end
end
是我groups/show.html.haml
這裏我給自定義動作的路徑裏面的代碼..
- if @collegemates.empty?
%p.info You have no common collegemates ...
- else
%table.datatable
%thead
%tr
...
%tbody
- @collegemates.each do |c|
- unless Membership.group_member(c.id, @group)
%tr
%td= c.full_name
%td= c.email
%td= link_to "request to join",{:controller => :memberships, :action => "req",:email =>c.email,:group_id => @group.id},:method => "post"
當我點擊請求加入我得到這個未知的動作錯誤的顯示操作。我在這裏做錯了什麼?
您是否包含Rails的javascripts? Rails使用javascript,以便您的鏈接執行發佈請求。如果您沒有包含JavaScript,則執行獲取請求而不是發佈請求。 – Mischa 2012-04-24 07:00:27
如何包含此javascript ...創建也是一個發佈請求不是嗎?我的創建操作正常工作正常,這意味着我的發佈請求正在工作fyn .. – NJF 2012-04-24 07:15:48
創建可能會工作,因爲它是一個帶按鈕的正常形式。這是一個鏈接,所以你需要javascript來使它做一個帖子。您必須將javascript包含在佈局文件的'head'標籤中,如下所示:'<%= javascript_include_tag'應用程序'%>'。其中已包含 – Mischa 2012-04-24 07:21:09