I assume that u r following models:

class ContentMaster < ActiveRecord::Base
has_and_belongs_to_many :tags
end

class Tags < ActiveRecord::Base
has_and_belongs_to_many :content_masters
end

change ur view as:


       <% for tag in Tag.find(:all)  %>
       <div>
               <%=check_box_tag "content_master[tag_id*s*][]", tag.id,
               @content_master.tags.include?(
>
> tag) %>
>                <%= tag.name %>
>
>        </div>
>        <% end %>



Carefully look on the above code, I have changed tag_id to tag_ids.

Then you have to change the create method as follows:
def create
   @content_master = ContentMaster.new(params[:content_master])

>      respond_to do |format|
>      if @content_master.save
>        #save images


The above code will perfectly work


On Tue, Apr 13, 2010 at 2:14 PM, Rahul Mehta <[email protected]>wrote:

> Hiiii,
>
> I have created one migration..
>
> class TagContentMasterJoin < ActiveRecord::Migration
>  def self.up
>     create_table 'content_masters_tags' do |t|
>      t.column 'tag_id', :integer
>      t.column 'content_master_id', :integer
>      t.timestamps
>    end
>  end
>
>  def self.down
>        drop_table 'content_masters_tags'
>  end
> end
> for joining two tables
> and in content_master view new want to save associated tag in the
> above table for that i have written this code in content_master view
> new
>
>        <% for tag in Tag.find(:all)  %>
>        <div>
>                <%=check_box_tag "content_master[tag_id][]", tag.id,
>                @content_master.tags.include?(tag) %>
>                <%= tag.name %>
>
>        </div>
>        <% end %>
>
> and in my create function of content master controller following code
> is present ..
>  def create
>    @content_master = ContentMaster.new
>    @content_master.tags=params[:content_master][:tag_id]
>      respond_to do |format|
>      if @content_master.save
>        #save images
> and some code here
>
>
> but this all giving me this error
>  ActiveRecord::AssociationTypeMismatch in Content
> mastersController#create
>
> Tag(#46439460) expected, got String(#21132310)
>
> RAILS_ROOT: D:/TestingGeek/trunk/Site
> Application Trace | Framework Trace | Full Trace
>
> C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/
> associations/association_proxy.rb:262:in `raise_on_type_mismatch'
> C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/
> associations/association_collection.rb:320:in `replace'
> C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/
> associations/association_collection.rb:320:in `each'
> C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/
> associations/association_collection.rb:320:in `replace'
> C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/
> associations.rb:1325:in `tags='
> D:/TestingGeek/trunk/Site/app/controllers/
> content_masters_controller.rb:64:in `create'
>
>
> and in my model code is
>  has_and_belongs_to_many :content_masters
>  has_and_belongs_to_many :tags
>
> i have give as respective model..
>
> please help this is urgent..
>
> thanks
>
> rahul..
>
>
>
> --
> 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 [email protected].
> To unsubscribe from this group, send email to
> [email protected]<rubyonrails-talk%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>

-- 
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 [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.

Reply via email to