Rails 3:自定义路由导致'未定义的局部变量或方法'

时间:2012-07-20 18:52:01

标签: ruby-on-rails routing

在routes.rb中:

resources :conversations, only: [:index, :show, :new, :create, :destroy] do
  collection do
    get :inbox
  end

在我的控制器中:

def inbox
  <stuff>
end

在我看来(使用haml):

=link_to 'Inbox', inbox_conversations, :id => 'load-inbox', :class => 'message-control-highlight', :remote => true

我在页面加载时遇到以下错误:

undefined local variable or method `inbox_conversations' for #<#<Class:0x3d51470>:0x3d59198>

在我看来,如果我用“#”替换inbox_conversations,我在页面加载时不会出现任何错误。我尝试在可能的类中附加inbox_conversation,例如current_user和current_user.mailbox。我也尝试将路由从集合更改为成员 - 甚至将其从任何集合/成员块中取出。这可能是什么问题?

2 个答案:

答案 0 :(得分:1)

尝试使用inbox_conversations_pathinbox_conversations_url

=link_to 'Inbox', inbox_conversations_path, :id => 'load-inbox', :class => 'message-control-highlight', :remote => true

答案 1 :(得分:1)

您需要在路线中添加_path_url,例如

= link_to 'Inbox', inbox_conversations_path

有关所有详细信息,请参阅完整的Rails路由指南:

http://guides.rubyonrails.org/routing.html