以下是我的form
。
<%= form_for @user, {class: "form-horizontal", id: "signupform"} do |f| %>
<% end %>
以下是我的PersonController
class PersonController < ApplicationController
def new
@user = User.new
end
end
当我尝试导航到http://localhost:3000/person/new
时,我会在下面收到以下错误。
undefined method `model_name' for User:Class
用户模型
class User << CustomService
verbose true
get :all, '/users/'
post :login, '/signin'
end
答案 0 :(得分:2)
我认为您不想指定@user,而只需使用符号(:user)。请试一试。
您的代码应该是这样的,
<%= form_for :user, url: users_path, method: :post, {class: "form-horizontal", id: "signupform"} do |f| %>
<% end %>
注意:users_path =&gt;你的帖子。
答案 1 :(得分:1)
可能你的User类不是从ActiveRecord :: Base继承的,如下所示:
class User < ActiveRecord::Base
#your attributes and methods
end
尝试从此基类继承User。
希望它有所帮助。
答案 2 :(得分:1)
User
类不是代码中的ActiveRecord model
。因此,当您创建User.new
时,它只返回裸ruby类(不适用于Rails)
检查Rudy Sidinger
的答案,了解如何正确执行此操作
此外,您可能希望查看班级的这一部分:
get :all, '/users/'
post :login, '/signin'
为什么要在模型中定义路线?我只在config/routes.rb
文件中定义路由,如下所示:
#config/routes.rb
resources :users, only: :index, path_names: { index: "all" } do #-> routes to /all for users idnex
collection do
post "signin", action: :login
end
end