gpt4 book ai didi

heroku - Heroku 上的 Rails 4.0,NoMethodError(# nike

我看过很多关于这个错误的帖子,但我仍然很难过。

编辑:https://anthonyroberts.herokuapp.com/signup

Michael Hartl 的教程,第 7 章的结尾,您有一个有效的注册表单。在本地工作,但在 Heroku 上返回 500。我已重置数据库并在 Heroku 上运行 db:migrate,但无济于事。我尝试了 Heroku 控制台,并成功创建了一个用户

foo = User.create(name: "Anthony", email: "email@email.com", 
password: "foobar", password_confirmation: "foobar")

这有效,我有一个用户。那么为什么注册表单提交给我这个错误:
NoMethodError (undefined method `password_digest=' for #<User:0x007f02972b7118>): 
app/controllers/users_controller.rb:12:in `create'

这是 user.rb:
class User < ActiveRecord::Base
before_save { email.downcase! }
validates :name, presence: true, length: { maximum: 50 }
VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(?:\.[a-z\d\-]+)*\.[a-z]+\z/i
validates :email, presence: true, format: { with: VALID_EMAIL_REGEX },
uniqueness: { case_sensitive: false }
has_secure_password
validates :password, length: { minimum: 6 }
end

这是将 password_digest 添加到模型的迁移:
class AddPasswordDigestToUsers < ActiveRecord::Migration
def change
add_column :users, :password_digest, :string
end
end

这是 users_controller.rb:
class UsersController < ApplicationController

def show
@user = User.find(params[:id])
end

def new
@user = User.new
end

def create
@user = User.new(user_params)
if @user.save
flash[:success] = "Welcome to the Sample App!"
redirect_to @user
else
render 'new'
end
end

private

def user_params
params.require(:user).permit(:name, :email, :password,
:password_confirmation)
end
end

这是 new.html.erb 模板:
<% provide(:title, 'Sign up') %>
<h1>Sign up</h1>
<div class="row">
<div class="span6 offset3">
<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages' %>

<%= f.label :name %>
<%= f.text_field :name %>

<%= f.label :email %>
<%= f.text_field :email %>

<%= f.label :password %>
<%= f.password_field :password %>

<%= f.label :password_confirmation, "Confirmation" %>
<%= f.password_field :password_confirmation %>

<%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
<% end %>
</div>
</div>

我是 RoR 的新手,所以我敢打赌这是一个小错误。

提前致谢。

最佳答案

我刚刚遇到了同样的问题,并通过运行命令 heroku restart 修复了它.

关于heroku - Heroku 上的 Rails 4.0,NoMethodError(#<User 的未定义方法 `password_digest=',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23961394/

24 4 0
文章推荐: haskell - 摆脱 Haskell 的 IO ( )
文章推荐: ruby-on-rails - rails : How to use gem Meta-tags?
文章推荐: Xcode 基础 : Declare custom class with integer properties and use it in another class
文章推荐: scala - 无法使用程序集插件
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com