Ruby on rails 4 嵌套资源的字段\u不工作
我有以下协会:Ruby on rails 4 嵌套资源的字段\u不工作,ruby-on-rails-4,Ruby On Rails 4,我有以下协会: class Campaign < ActiveRecord::Base has_many :events end class Event < ActiveRecord::Base belongs_to :campaign belongs_to :venue accepts_nested_attributes_for :venue end class Venue < ActiveRecord::Base has_many :events e
class Campaign < ActiveRecord::Base
has_many :events
end
class Event < ActiveRecord::Base
belongs_to :campaign
belongs_to :venue
accepts_nested_attributes_for :venue
end
class Venue < ActiveRecord::Base
has_many :events
end
它还会生成错误的字段名
这让我觉得我有我的模型协会顶起,但在审查文件。似乎并非如此。以下是我的模式供参考:
create_table "campaigns", force: true do |t|
t.integer "user_id"
t.string "title"
t.text "description"
t.integer "image_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "events", force: true do |t|
t.integer "campaign_id"
t.datetime "start_date"
t.datetime "end_date"
t.integer "venue_id"
t.integer "image_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "title"
t.text "description"
end
create_table "venues", force: true do |t|
t.float "latitude"
t.float "longitude"
t.string "address1"
t.string "address2"
t.string "city"
t.string "zip"
t.string "state"
t.string "country"
t.string "name"
t.string "gid"
t.datetime "created_at"
t.datetime "updated_at"
end
参见类似的SO帖子 1. 2. 正如在其中一篇文章中提到的,实现它的一种方法是将的
accepts\u nested\u attributes\u更改为has\u many
侧
class Campaign < ActiveRecord::Base
has_many :events
accepts_nested_attributes_for :events
end
class Event < ActiveRecord::Base
belongs_to :campaign
belongs_to :venue
end
class Venue < ActiveRecord::Base
has_many :events
accepts_nested_attributes_for :events
end
class活动
如果不是,您可能希望使用@event为事件
构建场馆
。在调用字段之前,在控制器中构建场馆
希望有帮助 至少在铁路上,它确实对你有用。但是你的第二个链接的第二个答案是正确的。我需要在fieldsê之前致电@event.buildêvinceê知道如何取球。毕竟,我的关联是正确建立的。如果你想重新安排你的答案,我会把它标记为正确答案。@Vigrond我想现在看起来还可以。不管怎样,很高兴你找到了答案。
create_table "campaigns", force: true do |t|
t.integer "user_id"
t.string "title"
t.text "description"
t.integer "image_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "events", force: true do |t|
t.integer "campaign_id"
t.datetime "start_date"
t.datetime "end_date"
t.integer "venue_id"
t.integer "image_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "title"
t.text "description"
end
create_table "venues", force: true do |t|
t.float "latitude"
t.float "longitude"
t.string "address1"
t.string "address2"
t.string "city"
t.string "zip"
t.string "state"
t.string "country"
t.string "name"
t.string "gid"
t.datetime "created_at"
t.datetime "updated_at"
end
class Campaign < ActiveRecord::Base
has_many :events
accepts_nested_attributes_for :events
end
class Event < ActiveRecord::Base
belongs_to :campaign
belongs_to :venue
end
class Venue < ActiveRecord::Base
has_many :events
accepts_nested_attributes_for :events
end