如何在单独的控制器/视图中调用模型?
即。我有一个User模型,在我的静态控制器中,在home方法/视图中,我想将@user称为注册表单。当我这样做时,它抛出一个无方法错误。有没有解决的办法?
我正在使用设计。
静态控制器
class StaticController < ApplicationController
def home
@user = User.new
end
end
Home.html.erb
<%= simple_form_for @user do |f| %>
<%= f.input :email %>
<%= f.button :submit %>
<% end %>
用户模型
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :trackable, :validatable
protected
def password_required?
false
end
end
以下解决方案不起作用。我得到了
NOMETHODERROR in STATIC#HOME
undefined method `users_path' for #<#<Class:0x007fe888125480>:0x007fe8881247d8>
关于为什么会这样做的任何想法?
答案 0 :(得分:1)
您收到的错误消息似乎表明没有users_path
的帮助方法如果将以下行添加到config / routes.rb文件中,则可以使用该辅助方法。 config / routes.rb文件中的条目是创建这些辅助路径的条件。
resources :users
答案 1 :(得分:0)
在静态控制器中的操作中,您只需创建一个用户实例
class StaticController < ApplicationController
def home
@user = User.new
end
end
现在,静态/ home.html.erb
<%= @user.inspect %>
可以使用,因此您可以将其与simple_form
等一起使用
如果您正在编写用户从头开始注册的话很酷,否则您可能需要查看devise
gem。