gpt4 book ai didi

ruby-on-rails - Ruby on Rails 未定义方法 `email'

转载 作者:行者123 更新时间:2023-12-04 05:27:45 25 4
gpt4 key购买 nike

我正在开发的 rails 应用程序遇到了一些问题。我正在使用来自 https://github.com/plataformatec/simple_form 的 simple_form gem。运行后 rails server我看到以下错误

undefined method `email' for #<User:0x007f7c9888c950>

提取的源代码(围绕第 7 行):
<%= simple_form_for User.create, :input_html => { :class => 'form-horizontal hide', :id => 'dataWithinSignIn'} do |f| %>
<div class="control-group">
<div class="controls">
#7 <%= f.input :email, :id => 'inputEmail', :placeholder => 'Email' %>
</div>
<div class="controls">
<%= f.input :password, :id => 'inputPassword', :placeholder => 'Password' %>

我的源代码在 https://bitbucket.org/jasonriddle/stubmoney分行 test-repo我在互联网上搜索了几个小时的答案,但我没有找到答案。

最佳答案

这是我在您的代码中看到的唯一迁移:

class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.references :user
# Same as saying
# t.integer :user_id (Foreign Key Column)
# t.string :imageable_type (Type Column)
t.timestamps
end
end
end

那里没有电子邮件列,而且看起来您没有正确设置用户表,因为它只是对用户和默认时间戳的引用。

我会跑 rake db:rollback删除 users 表,然后在再次迁移之前将迁移编辑为如下所示:
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :email
t.string :password # or :encrypted_password
t.timestamps
end
end
end

此外,您通常会将密码列命名为 encrypted_password然后有一个名为 password 的虚拟属性在您的用户模型中。 virtual 属性是在表单中使用的属性。 (就像在您的示例 simple_form 代码中一样)

关于ruby-on-rails - Ruby on Rails 未定义方法 `email',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12994274/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com