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.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment