我有2个模特,Lanzadera和Addict。
Lanzadera has_many :addicts
Addict belongs_to :lanzadera
我有一个Lanzaderas列表,旁边有一个“注册”按钮,这将呈现Addict新表单。
然后,用户将使用Addict属性填写表单,该addict应该列在该特定的lanzadera中。所以,这一切都是关于在lanzaderas中列出成瘾者。
一切看起来都很棒,我可以在日志中看到lanzadera_id
,但当我说@lanzadera.addicts.count
它会放0
。这意味着,正在创建成瘾者,但没有被分配给它的兰扎德拉。
lanzadera_id
中允许 addict_params
。
我的问题是,在创建新的lanzadera_id
时如何在表单中传递Addict
,以便在Lanzadera
内列出上瘾?
Started POST "/lanzaderas/1/addicts" for 127.0.0.1 at 2014-07-10 19:25:41 +0200
Processing by AddictsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"mJ7pl2xsjhwhdGM2RZBDA+fmD75tpZcsPIaeSwYaBhE=", "addict"=>{"name"=>"Kike", "email"=>"kikeisasi@gmail.com", "city"=>"65", "postal"=>"56478", "street"=>"Aiboa 19, 4", "lanzadera_id"=>""}, "commit"=>"Crear Addict", "lanzadera_id"=>"1"}
(0.2ms) BEGIN
SQL (0.7ms) INSERT INTO "addicts" ("city", "created_at", "email", "name", "postal", "street", "updated_at") VALUES ($1, $2, $3, $4, $5, $6, $7) RETURNING "id" [["city", "65"], ["created_at", Thu, 10 Jul 2014 17:25:41 UTC +00:00], ["email", "kikeisasi@gmail.com"], ["name", "Kike"], ["postal", 56478], ["street", "Aiboa 19, 4"], ["updated_at", Thu, 10 Jul 2014 17:25:41 UTC +00:00]]
答案 0 :(得分:0)
我的猜测是你错过了数据库中Addicts表中的landazera_id
。当它开始INSERT INTO
行时,它不会将id列为其中一列。如果还没有,请确保'landazera_id'迁移到表中。 Rails不会根据您的has_many
,belongs_to
关联自动执行此操作(或者至少我从未想过如何自动执行此操作),因此您必须自己进行迁移。< / p>
rails g migration add_landazera_id_to_addicts landazera_id:integer
在文本编辑器中检查迁移以确保正确生成。它应该包括:
def change
add_column :addicts, :landazera_id, :integer
end