I was here last week working out a correct link_to path for a nested
resource.
Through the help I received things were resolved with that issue. Now,
I’m
having a related issue.
For clarification my routes.rb (the rest parts) is here:
map.resources :candidates do |candidate|
candidate.resources :canbackgrounds
Now originally I had the models set up as such:
class Candidate < ActiveRecord::Base
has_many :canbackgrounds
class Canbackground < ActiveRecord::Base
belongs_to :candidate
However , part of fixing my problem last week was changing the Candidate
model to:
class Candidate < ActiveRecord::Base
has_one :canbackground
All was good until I went to candidates/id/canbackgrounds/new
After inputing the data, my controller code
(canbackgrounds_controller.rb)
threw a no-method error on the create action:
def create
@canbackground = Canbackground.new(params[:canbackground])
@candidate_id = params[:candidate_id]
if (@candidate.canbackgrounds << @canbackground) <-----This was the
line,
with no method ‘canbackgrounds’
redirect_to candidate_url(@candidate)
else
render :action => :new
end
end
I thought maybe it needed to be singular but then << threw a no method
error.
I went back to the model and changed the Candidate to has_many
:canbackgrounds and that fixed the problem.
However if I leave it like this then I’m back to the same problem as
last
week.
So , one I’m open to hearing if anyone has any ideas about what’s going
on ,
and could the create problem be related
to the fact that a canbackground record already existed when I was
attempting to insert another one ?
TIA
Stuart
–