在我的应用程序的控制台中,我得到了未定义的方法`每个'为真:TrueClass"尝试将布尔值设置为true或false时。
例如,如果我
Man.create(guy: true) # or
Man.create(:guy => true) # etc
我已经好几个月没有使用过这个应用程序了,我相信在我停止工作之前一切正常。我是Ruby的新手,并且编程知识有限,所以非常感谢任何帮助。创建行并仅提供字符串或整数值可以正常工作。如果这很重要,我正在使用SQLite3数据库。
guy是一个布尔
class AddMan < ActiveRecord::Migration
def change
create_table :men do |t|
t.boolean :guy
t.boolean :girl
t.boolean :dude
t.boolean :lady
t.boolean :albert
t.timestamps
end
end
end
class Man < ActiveRecord::Base
has_many :guys
has_many :girls
end
答案 0 :(得分:1)
此:
has_many :guys
has_many :girls
通过Rails约定假设存在整数列:guy_id
和girl_id
,它们应分别是guys
和girls
表中的外键。这些不在您的架构中,因此我认为这是您所看到的错误的根本原因。
通常,请尝试避免可能与其他模型冲突的列名称(我假设您有名为Guy
和Girl
的模型。尝试将布尔列重命名为is_guy
和is_girl
。
答案 1 :(得分:0)
从您的Man
模型中,我假设您有guys
和girls
个不同的表格。从您的控制台看,您似乎想要为Man
表的guy
属性赋值。
如果是这种情况,那么您可以为Man
表的guy
属性分配值,例如
man = Man.new
man.guy = true