我正在使用Rails 5。
这是我的数据库结构
create_table :apps do |t|
t.text :tech_assist_info
t.integer :scheduled
t.integer :status
t.text :notes
t.belongs_to :operator, index: true, foreign_key: true
end
create_table :boards do |t|
t.string :board_type
t.string :registration_mark
t.belongs_to :app, index: true, foreign_key: true
end
create_table :app_files do |t|
t.string :name, null: false
t.integer :file_type
t.belongs_to :app, index: true, foreign_key: true
end
create_table :board_files do |t|
t.belongs_to :app_file, index: true, foreign_key: true
t.belongs_to :board, index: true, foreign_key: true
end
这是模型文件
# app.rb
class App < ApplicationRecord
belongs_to :operator
has_many :app_files
has_many :boards
accepts_nested_attributes_for :boards, :app_files, allow_destroy: true
end
#board.rb
class Board < ApplicationRecord
belongs_to :app
has_many :board_files
has_many :app_files, through: :board_files
accepts_nested_attributes_for :board_files, :app_files
end
#board_file.rb
class BoardFile < ApplicationRecord
belongs_to :board
belongs_to :app_file
end
#app_file.rb
class AppFile < ApplicationRecord
belongs_to :app
has_many :board_files
has_many :boards, through: :board_files
end
提出以下问题
如何进行嵌套对象的保存/创建功能?
我正在尝试这个,但这不起作用。 我查看了文档http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.html
@app = App.new({
tech_assist_info: "abc", status: 1, boards_attributes: [
{board_type: "ABC55", registration_mark: "qwerty", app_files_attributes: [
{name: "name.pdf", file_type: 5}]}
]
})
@app.save
由于