在控制器中设置数据库中的值

Setting a value from database in the conroller

我正在尝试在下面的代码中设置电子邮件值,但我一直收到 "undefined method `email=' "。 current_user.email 基于当前登录的用户。登录系统是使用设计制作的。永远不会有人可以在未登录的情况下创建新的 post,因此总会有一个 current_user.email 值。

def create
    @post= Post.new(post_params)
    @post.email= current_user.email #this is the line where it falls apart
    if @post.save
        redirect_to posts_path, :notice => "Post Saved"
    else
        render "new"
    end
end

这是 post 的表

class CreatePosts < ActiveRecord::Migration
  def change
    create_table :posts do |t|
      t.string :title
      t.string :venmo_name
      t.float :price
      t.datetime :end_datetime
      t.integer :areacode
      t.string :email

      t.timestamps null: false
    end
  end
end

undefined method `email='

表示email属性的Post的setter方法没有定义。您的 posts table 很可能只是缺少该列,否则 AR 会为您生成它。