I can''t seem to find any logical way of handling this situation I have
created.
Heres the problem I have worked myself into.
On the create/update of a model, say post, one of the things it has
associated with it is a list of tags. The tags are associated through a
separate model of tags_to_posts. But I wanted to separate the tags by
the word, then save them.
On the PostController.update function i do a split of the tags based on
the spaces. So the submitted params get broken into an array based on
each word. But the save of this always seems to mess up.
This is basically how the situation is set up.
Models:
class Post < ActiveRecord::Base
has_many :tags_to_post
has_many :tags, :through => :tags_to_post
end
class Tag < ActiveRecord::Base
has_many :tags_to_post
has_many :posts, :through => :tags_to_post
end
class Tags_to_post < ActiveRecord::Base
belongs_to :post
belongs_to :tag
end
Edit.html.erb :
<fieldset>
<label>Tags</label>
<%= text_field_tag ''post[tags]'',
@post.tags.join('' ''), :id =>
''post_tags'' %>
</fieldset>
PostController
def update
@post = Post.find(params[:id])
params[:post][:tags] = params[:post][:tags].split
respond_to do |format|
if @post.update_attributes(params[:post])
flash[:notice] = ''Post was successfully updated.''
format.html { redirect_to(@post) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @post.errors, :status =>
:unprocessable_entity }
end
end
end
Anyone have any suggestions for a good way of getting this to work?
--
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
-~----------~----~----~----~------~----~------~--~---