我在我的会员控制器中创建了一个自定义操作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