在Rails 3.1应用程序和更新的Devise 1.4.7中,当我访问http://localhost:3000/users/sign_up时(如rake路由中所示),我得到“设计错误在设计/注册#new ”提取源是第3行:
<%= form_for(resource_name, resource, :url => registration_path(resource_name)) do |f| %>.
这是什么解决方案?提前谢谢。
Deals::Application.routes.draw do
devise_for :users
root :to => "home#index"
end
答案 0 :(得分:0)
你有太多的论据。 form_for
只需要一个参数(资源),如下所示:
@registration = Registration.new
form_for @registration
如果需要,您可以选择传递:url
。
答案 1 :(得分:0)
试试这个。
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
答案 2 :(得分:0)
我可以确认当您运行rails generate devise:views
并查看从gem复制到 app / views / devise / registrations / new.html.erb 的工作默认模板时,{{ Devise使用参数调用3}}:
form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f|
如果您希望复制gem视图,请查看form_for
。
但是,如果您(或其他人正在阅读此内容)尝试将注册表单与您自己的控制器一起使用,则完全有可能需要重新创建一些方法the views in the repo以便from the Devise controller 。假设您调用了用户类User
:
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end