NoMethodError (#<Arel::Nodes::BindParam:0x007fe5554268b8>) 的未定义方法 'val' ): app/controllers/p



我是铁轨新手。本地一切都很好,但在heroku上部署后,出现了上述错误。

以下是post_controllers操作:

 def new
   @post = current_user.posts.build
 end

这是schema.rb文件的内容:

  ActiveRecord::Schema.define(version: 20160516214156) do
  create_table "comments", force: :cascade do |t|
    t.text     "comment"
    t.integer  "post_id"
    t.integer  "user_id"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end
  add_index "comments", ["post_id"], name:    "index_comments_on_post_id"
  add_index "comments", ["user_id"], name: "index_comments_on_user_id"
  create_table "posts", force: :cascade do |t|
    t.text     "description"
    t.datetime "created_at",         null: false
    t.datetime "updated_at",         null: false
    t.string   "image_file_name"
    t.string   "image_content_type"
    t.integer  "image_file_size"
    t.datetime "image_updated_at"
    t.integer  "user_id"
  end
  create_table "users", force: :cascade do |t|
    t.string   "email",                  default: "", null: false
    t.string   "encrypted_password",     default: "", null: false
    t.string   "reset_password_token"
    t.datetime "reset_password_sent_at"
    t.datetime "remember_created_at"
    t.integer  "sign_in_count",          default: 0,  null: false
    t.datetime "current_sign_in_at"
    t.datetime "last_sign_in_at"
    t.string   "current_sign_in_ip"
    t.string   "last_sign_in_ip"
    t.datetime "created_at",                          null: false
    t.datetime "updated_at",                          null: false
 end
 add_index "users", ["email"], name: "index_users_on_email", unique:   true
 add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
end

我也有同样的错误。为了解决这个问题,我指定了has_many关系的:foreign_key

我的案例:

class Assay::Attempt::Answer < ActiveRecord::Base belongs_to :assay_attempt, class_name: 'Assay::Attempt' end

class Assay::Attempt < ActiveRecord::Base has_many :answers, foreign_key: :assay_attempt_id # there wasn't foreign_key option end

我在Rails 4.2.0上也遇到了这个问题,在我的情况下,一切似乎都很好,因为我指定了foreign_key,所以当foreign_key和foreign_type被指定为字符串而不是符号时,解决了这个问题:

has_many :answers, foreign_key: :assay_attempt_id  #this was not working
has_many :answers, foreign_key: 'assay_attempt_id' #this was ok

最新更新