HAML链接不起作用

时间:2012-04-18 18:14:51

标签: ruby-on-rails ruby routing

我做了这个HAML链接:

= link_to "Create Profile", signup_path 

我认为它应该有效,因为这个网址有效:

http://m.cmply.local:8800/signup

但我得到了这个错误:

undefined local variable or method `signup_path' for #<#<Class:0x129a08190>:0x129a027e0>

这是我的routes.rb片段

  scope :module => :mobile, :as => :mobile do
    constraints(:subdomain => /m/) do
      devise_for :users, :path => "", :path_names =>
               { :sign_in => "login", :sign_out => "logout",
                 :sign_up => "signup" },
                 :controllers => {:sessions => "mobile/sessions"}

      resources :home

      resources :disclosures # Will have new, get, look up a disclosure

    end
  end

这里是rake routes snippet

{:action=>"create", :controller=>"registrations"}
 new_user_registration GET    /signup(.:format)

知道为什么会这样吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为rails不知道“signup_path”是什么。我建议您运行bundle exec rake routes确保 signup_path实际上在这些路线中。我可以通过查看您的routes.rb文件来确定您不会拥有signup_path路线。

您正在寻找的路线将更像users_signup_path,因为设计人员喜欢将其路线包裹在这样的名称空间中。

答案 1 :(得分:2)

signup_path更改为new_user_registration_path

答案 2 :(得分:0)

尝试放置app_main.signup_path。似乎在不同的引擎上被调用。 我之前遇到过这个问题。

并按照其他人的指示检查您的路线。