2010-07-16 18 views
6

Bir Zaman Çizelgesi Modeline, bir Çalıştırma modeline ve bir Sporcu modeline sahibim.Collection_select Yuvalanmış bir model formunda

class Timesheet < ActiveRecord::Base 
    has_many :runs, :dependent => :destroy 
    accepts_nested_attributes_for :runs 
end 


class Run < ActiveRecord::Base 
    belongs_to :timesheet 
    belongs_to :athlete 
end 

class Athlete < ActiveRecord::Base 
    has_many :runs 
end 

çalıştırır Timesheets altında iç içe olan ve benim çizelgesi formunda bu railscast

class TimesheetsController < ApplicationController 
    def new 
    @timesheet = Timesheet.new 
    3.times { @timesheet.runs.build } 
    end 

gösterildiği gibi ben değilim, ben bir Çizelgesi oluşturmak aynı form üzerinde birkaç ishal oluşturmak istiyorum collection_select ile ilgili bir sorun yaşamaya devam ediyor (Runs tablosundaki sporcu_dizisi alanını dolduran Sporcu isimlerinin bir düşüşü). yukarıda gösterildiği gibi çizelgesi için iç içe geçmiş bir form içinde, bir collection_select ile Run athlete_id alanını veya bir şey eksik:

<% form_for(@timesheet) do |f| %> 
    <%= f.error_messages %> 
    <%= f.label "Date" %> 
    <%= f.text_field :date %> 

    <% f.fields_for :runs do |builder| %> 
    <%= collection_select(:run, :athlete_id, Athlete.all(:order => 'name'), :id, :name, { :prompt => 'Select Athlete' }) %> 
    <% end %> 

<%= f.submit 'Create' %> 

<% end %> 

bu kitlenin mümkün mü?

cevap

15
Eğer toplama formu oluşturucudaki seçmek oluşturmuyorsanız anlaşılıyor

, böyle bir şey deneyin:

<% f.fields_for :runs do |r| %> 
    <%= r.collection_select(:athlete_id, Athlete.all(:order => 'name'), :id, :name, { :prompt => 'Select Athlete' }) %> 
<% end %> 
+1

teşekkür ederiz! Bu mükemmel çalıştı ve beni çok fazla hayal kırıklığına uğrattı. – jktress

İlgili konular