Ruby on Rails Friday, March 30, 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
91 64 54
92 64 80.00

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

Please have a look to see if you can help me translate my console code
into the appropriate code for my contracts_controller?

Thanks

--
Posted via http://www.ruby-forum.com/.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
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