私は3つのモデルを持っています:
class Project < ActiveRecord::Base
attr_accessible :name
has_many :tickets, dependent: :delete_all
end
class Ticket < ActiveRecord::Base
belongs_to :project
attr_accessible :description, :title,:asset
has_many :assets
accepts_nested_attributes_for :assets
end
class Asset < ActiveRecord::Base
attr_accessible :title, :body
belongs_to :ticket
has_attached_file :asset
end
_形:
<%= form_for([@project,@ticket], html: { multipart: true }) do |f| %>
<p>
<%= f.label :title %>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :description %>
<%= f.text_area :description %>
</p>
<% number = 0 %>
<%= f.fields_for :assets do |asset| %>
<p>
<%= asset.label "File ##{number +=1}" %>
<%= asset.file_field :asset %>
</p>
<% end %>
<%= f.submit %>
<% end %>
チケットコントローラー:
def new
@ticket = @project.tickets.build
3.times { @ticket.assets.build }
end
問題は、プロジェクトの新しいチケットを作成しようとすると、 ActiveRecord::UnknownAttributeError at /projects/1/tickets/new unknown attribute: ticket_id @ticket= id: nil, title: nil, description: nil, project_id: 1 が表示されることです。 、created_at: なし、updated_at: なし、user_id: なし
エラー メッセージから、チケットの「id」が nil (まだ作成されていない) であることがわかります。そのため、アセットには ticket_id がありません。どうすれば回避できますか?