I have a model:
class Video < ActiveRecord::Base
has_many :video_tags
has_many :video_types
has_many :tags, :through => :video_tags, :uniq => :true
has_many :types, :through => :video_types, :uniq => :true
def get_tag_list(delimiter)
tags.collect { |t| t.tag }.join(delimiter)
end
def set_tag_list(tag_list, delimiter)
# doesn''t remove old tags
tag_list.split('','').each do |t|
tags << Tag.find_or_create_by_tag(t)
end
end
end
When I call
@video.set_tag_list(params[:tag_list], '','')
in my controller, it throws the exception - Cannot associate new records
through ''Video#video_tags'' on ''#''. Both
records must have an id in order
to create the has_many :through record associating them.
However, in the script/console, the method call works just fine. What
could be causing this problem?
--
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---