我在Tony's tutorial和second tutorial移动的Rails 3应用中进行了身份验证。
但是我得到了
用户
的未定义方法'模型'
它只是从教程中复制/粘贴,我认为这是我的应用程序架构中的问题:)
尝试访问/ users / new
时出错答案 0 :(得分:0)
要自定义Devise创建的视图,请先在应用程序中生成它们。
rails generate devise:views
这会导入您需要的所有视图,您可以根据自己的内容进行自定义。这是新用户视图(/devise/registrations/new.html)
中的代码'<%= form_for(资源,:as => resource_name,:url => registration_path(resource_name))do | f | %GT;'
你会注意到没有@user - 使用@user会导致未定义的方法模型错误。
不知道为什么使用资源而不是@user,但希望这会让你前进。
答案 1 :(得分:0)
我无法重现您在本地的问题,这是我最好的猜测:在您的视图中@user存在的唯一原因是因为您在控制器中调用load_and_authorize_resource,这是一个创建的CanCan方法@user对象。这可能是您的问题的根源,因此您可以尝试使用authorize_resource,然后在新方法中显式创建@user。
以下是我注意到的一些事情:
devise_for :users, :controllers => { :registrations => "users/registrations" }
之类的操作,以便设计使用您的控制器。我首先要解决这些问题,然后再深入解决当前的问题。
在开始添加报告界面之前,可能值得将代码剥离到Tony所具有的功能并使其正常工作。我看到您的数据库的角色列表为“super_admin”,“global_user”和“internal_user”,但您在查询之前在字符串上调用camelize,因此我怀疑CanCan在您的环境中是否正常工作。
最后一件事,请确保更改所有密码以及您共享的所有内容 - 请查看this post for a list of files to change。