我做了这个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)
知道为什么会这样吗?
谢谢!
答案 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。似乎在不同的引擎上被调用。 我之前遇到过这个问题。
并按照其他人的指示检查您的路线。