Rails 3 restful路由问题



下面的链接在我的应用程序中工作:

<%= link_to "invitation", :controller => :invitations, :action => :index %>

为了遵循restful约定,我将链接更改为:

<%= link_to "invitation", index_invitation_path %>
我得到的错误是:
undefined local variable or method `index_invitation_path'

Rake路由yield:

invitations GET    /invitations(.:format)          {:controller=>"invitations", :action=>"index"}

页面名称为index.html.erb。模型是invite .rb。控制器是invitation_controller.rb。路由有资源:邀请。我错过了什么?

谢谢!

假设路由正确:

resources :invitations

那么索引操作的正确帮助器(url/invitation .html)是

invitations_path

您可以通过运行rake路由查看更多信息。它将显示如下文本:

             lists GET    /lists(.:format)
           {:action=>"index", :controller=>"lists"}
                   POST   /lists(.:format)
           {:action=>"create", :controller=>"lists"}
          new_list GET    /lists/new(.:format)
           {:action=>"new", :controller=>"lists"}
         edit_list GET    /lists/:id/edit(.:format)
           {:action=>"edit", :controller=>"lists"}
              list GET    /lists/:id(.:format)
           {:action=>"show", :controller=>"lists"}
                   PUT    /lists/:id(.:format)
           {:action=>"update", :controller=>"lists"}
                   DELETE /lists/:id(.:format)
           {:action=>"destroy", :controller=>"lists"}
              root        /(.:format)
           {:controller=>"lists", :action=>"index"}

以上是我自己的路线(为一个名为List的模型)。路由助手方法显示在HTTP方法之前。您必须记住将路径附加到每个助手方法。例如,我可以使用的辅助方法是:

list_path(list)
edit_list_path(list)
new_list_path
lists_path

你需要在路由中添加一条路由。定义到邀请控制器和索引操作的映射的Rb文件。

通常是通过资源调用

创建的
resources :invitations

它创建了几个默认路由,你可以通过运行rake路由看到。

对于单个资源,您也可以使用match调用

来定义它
match "invitations/:id" => "invitations#index", :as => index_invitation

rails站点有一个很棒的路由资源,提供了所有细节:

Update:根据你更新的问题,你的路由包括一个邀请(注意后面的's')路由-没有索引或邀请。index_前缀由resources调用在为:邀请创建默认路由时生成。

看起来你已经为邀请定义了一个自定义的get映射。虽然这在技术上可行,但如果您的目标是支持rest路由,请使用resources方法。阅读一下rails的Routing guide,它非常容易遵循并且非常详细。

在控制台中键入rake routes,并查看可用路由列表。似乎没有这样的路由index_invitation_path?可能命名不一样

我认为你需要"invitations_controller "。来包含InvitationsController。复数。

相关内容

  • 没有找到相关文章

最新更新