繁体   English   中英

Rails 5过滤器字段

[英]Rails 5 filters fields

因此,在Rails控制台中,我以这种方式创建一行:

params = {:question=>"33333", :explanation=>"333", :hint=>"333", :worth=>1, :tags=>"3333", :active=>true, :qtype=>true, :user_id=>4}

q = Question.create! params

SQL (3.2ms)  INSERT INTO "questions" ("user_id", "question", "explanation", "hint", "tags", "worth", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7, $8) RETURNING "id"  [["user_id", 4], ["question", "33333"], ["explanation", "333"], ["hint", "333"], ["tags", "3333"], ["worth", 1], ["created_at", 2016-09-09 20:45:51 UTC], ["updated_at", 2016-09-09 20:45:51 UTC]]

谁都可以看到,Rails正在过滤“ active”和“ qtype”字段。 这两个列都存在于迁移文件和PostgreSQL的表中。 该模型非常基本:

class Question < ApplicationRecord
   belongs_to :user
   has_many   :answer

   default_scope { order('id DESC') }

   validates :question, presence: true
end 

我不明白为什么Rails会过滤这些字段。 我删除了schema.rb文件并从头开始创建数据库,但错误仍然存​​在。

以前曾报道过布尔值在PostgreSQL中没有正确设置rails的布尔值的问题。

如果您使用默认值重新创建字段,它将解决该问题。 回滚迁移,然后使用...重新创建

add_column :questions, :active, :boolean, default: false
add_column :questions, :qtype, :boolean, default: false

顺便说一句...

has_many :answer

应该是...

has_many :answers

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM