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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.