Je construis un formulaire d'une page qui va créer un modèle et il est des relations. J'ai parcouru une tonne de ressources sur le net ainsi que la série de formulaires complexes sur Railscasts, mais je n'arrive pas à trouver la solution à mon problème.Rails Nested Modèle de formulaire avec has_many par relation et construire appel
Voici ce que j'ai.
class Campaign < ActiveRecord::Base
has_many :artwork_groups
has_many :artwork_locales, :through => :artwork_groups
accepts_nested_attributes_for :artwork_groups
accepts_nested_attributes_for :artwork_locales
end
class ArtworkGroup < ActiveRecord::Base
belongs_to :campaign
has_many :artwork_locales
end
class CampaignsController < ApplicationController
def new
@campaign = Campaign.new
@locales = Locale.all
# Build the artowrk groups and locales for the new campaign
2.times do
@campaign.artwork_groups.build do |ag|
@locales.each do |locale|
ag.artwork_locales.build(:locale_id => locale.id)
end
logger.debug ag.artwork_locales
end
end
@games = GameVersion.all(:order => "game_key").group_by(&:game_family).sort_by{|k| k.first.name }
respond_to do |format|
format.html
end
end
À mon avis, je donne les résultats suivants (balisage supprimé):
<% form_for @campaign, :html => { :multipart => true } do |campaign| %>
<%= campaign.error_messages %>
<%= flash[:campaign_wizard] %>
<%= campaign.label :title %>
<%= campaign.text_field :title %>
<%= campaign.label :url %>
<%= campaign.text_field :url %>
<%= campaign.label :start_date %>
<%= campaign.text_field :start_date, {:class=>"datetimepicker"} %>
<%= campaign.label :end_date %>
<%= campaign.text_field :end_date, {:class=>"datetimepicker"} %>
<% campaign.fields_for :artwork_groups do |aw| %>
<%= aw.label :name, "Artwork Group Name" %>
<%= aw.text_field :name %>
<% aw.fields_for :artwork_locales do |al| %>
<%= al.label :locale_id %>
<%= al.text_field :locale_id %>
<%= al.label :language %>
<%= al.text_field :language %>
<%= al.label :upstate %>
<%= al.text_field :upstate %>
<% end %>
<% end %>
<%= campaign.submit 'Save Campaign & Publish' %>
<% end %>
Je reçois les sections de groupe d'œuvres d'art 2 à mon avis, mais je n'obtenir un paramètre régional d'art par groupe d'œuvres d'art . J'attendais un pour chaque locale que j'ai chargé. Je suppose que c'est un problème avec la relation has_many through ou les appels de build imbriqués dans mon contrôleur.
Toute aide sera grandement appréciée.
I love on fixe la ligne. C'était tout, merci! –