Ruby on Rails Saturday, March 31, 2012

I tried out some code in my console and I am having difficulty translating it for my view and controller so that it gives me the same result. My console:          @contract = Contract.new(authnum: "900700", st_date:"2012-01-01", end_date: "2012-30-06")          @contract.save          @code = Code.new(code_name: "S-5463", status: "Active",  description: "This and That")          @code.save          @codeline = @code.codelines.build(:units_alloc => "80.00", :contract => @contract)          @codeline.save          @codeline         => #<Codeline id: 91, contract_id: 64, code_id: 54, units_alloc: 80.00>  Using pgadmin3 I check my codelines table and I get the same result namely:          id    contract_id    code_id   units_alloc         91         64            54       80.00  But if I try to run this through my contracts_controller and view I get:          id    contract_id    code_id   units_alloc         1         1           1               ---I think this record comes from the @contract.codes.build         1         1                     80.00 ---I think this record comes from the @contract.codelines.build(:units_alloc => params[:units_alloc],:contract => @contract)   Here are my models:    class Contract < AR::Base     has_many :codelines     has_many :codes, :through => :codelines      accepts_nested_attributes_for :codes      attr_accessible :codes_attributes,:codes,:authnum,:st_date,:end_date   end    class Codeline < AR::Base     belongs_to :contract     belongs_to :code     units_alloc ...... this is the attribute I would like to set   end    class Code < AR::Base     has_many :codelines     has_many :contracts, :through => :codelines   end  The new/create action of my app/controllers/contracts_controller.rb    def new     @contract = Contract.new     @contract.codes.build     @contract.codelines.build(:units_alloc => params[:units_alloc],:contract => @contract)   end    def create      @contract = Contract.new(params[:contract])      if @contract.save        flash[:success] = "New Contract has been saved"        redirect_to @contract      else        @title = "You have some errors"        render 'new'      end    end  the partial for my view in app/views/contracts/_fields.html.haml      = f.fields_for :codes do |ff|       .field          = ff.label :name, "Code Name"          %br/          = ff.text_field :code_name       .field       .       .     = f.fields_for :codelines do |ff|       .field         = ff.label :name, "Units Alloc"         %br/         = ff.text_field :units_alloc

Can you please have a look at this and give me some direction?

Thanks.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/bXaxeLJJyJsJ.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment