Hi, I''ve developed an application last year with rails 1.2.3 and it worked fine on the web server till recently. Not sure what started the problem but I am having trouble with acts_as_taggable gem (which I know has been depreciated). It was suggested to look into has_many_polymorphs but I ran into problems with updating my database. The database has 3 tables (:products, :tags, :products_tags) and uses foreign keys. The application is based on "Beginning RoR e_commerce". Tags table has 2 columns: id and name. So, I gave that up on that one and tried to find an easier solution. Other things I looked at: * I installed acts_as_taggable as plugin instead of a gem -- but I''m just not sure what to change in the application in order to get it to work * I installed acts_as_taggable_on_steroids -- but again, I think I ran into the same problem with the foreign keys. This is the error message I get when I try "rake db:migrate" [code] Mysql::Error: Table ''tags'' already exists: CREATE TABLE tags (`id` int(11) DEFAULT NULL auto_increment PRIMARY KEY, `name` varchar(255) DEFAULT NULL) ENGINE=InnoDB [/code] Would anyone have a solution on how to fix my problem? Thanks in advance, Elle --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
On 14 Jul 2008, at 10:32, elle wrote:> > So, I gave that up on that one and tried to find an easier solution. > Other things I looked at: > * I installed acts_as_taggable as plugin instead of a gem -- but I''m > just not sure what to change in the application in order to get it to > work > * I installed acts_as_taggable_on_steroids -- but again, I think I ran > into the same problem with the foreign keys. This is the error message > I get when I try "rake db:migrate" > > [code] > Mysql::Error: Table ''tags'' already exists: CREATE TABLE tags (`id` > int(11) DEFAULT NULL auto_increment PRIMARY KEY, `name` varchar(255) > DEFAULT NULL) ENGINE=InnoDB > [/code]I assume acts_as_taggable_on_steroids is trying to create a tags table that you already have. I''d just blow away that migration (after checking that the table it was trying to create matches the one you already have. Fred> > > Would anyone have a solution on how to fix my problem? > Thanks in advance, > Elle > >--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Thanks Fred. I did just that. I also dropped my products_tags table
because as I understand the ''taggings'' table created by the
plugin
acts as the connector. Now, I don''t care about losing that data in
this case, I can always enter it manually (and I am happy not to be
using a depreciated gem).... but I feel hopeless as I am not sure how
to make it work from now on.
What I''ve done so far is:
1. Installed plugin
2. Added db table: taggings. Already had tags with id and name column.
3. Added acts_as_taggable to my Product class
When I login as admin to try and tag the products manually, I get this
error message (when I have both acts_as_taggable and
acts_as_taggable_on_steroids plugins installed):
NoMethodError in ProductController#update
undefined method `tag_collection_name'' for Product:Class
My update method includes the following:
def update
    @product = Product.find(params[:id])
    @product.tag(params[:tags], :separator => '','', :clear
=> true)
    if @product.update_attributes(params[:product])
      flash[:notice] = ''Product was successfully updated.''
      redirect_to :action => ''show'', :id => @product
    else
      load_data
      render :action => ''edit''
    end
  end
private
    def load_data
      @categories = Category.find(:all)
      @tags = Tag.find(:all)
    end
I am just not sure how to make the connection between the tag and the
product.
Help. Please.
Elle
On Jul 14, 9:37 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> On 14 Jul 2008, at 10:32, elle wrote:
>
>
>
> > So, I gave that up on that one and tried to find an easier solution.
> > Other things I looked at:
> > * I installed acts_as_taggable as plugin instead of a gem -- but
I''m
> > just not sure what to change in the application in order to get it to
> > work
> > * I installed acts_as_taggable_on_steroids -- but again, I think I ran
> > into the same problem with the foreign keys. This is the error message
> > I get when I try "rake db:migrate"
>
> > [code]
> > Mysql::Error: Table ''tags'' already exists: CREATE
TABLE tags (`id`
> > int(11) DEFAULT NULL auto_increment PRIMARY KEY, `name` varchar(255)
> > DEFAULT NULL) ENGINE=InnoDB
> > [/code]
>
> I assume acts_as_taggable_on_steroids is trying to create a tags table
> that you already have. I''d just blow away that migration (after
> checking that the table it was trying to create matches the one you
> already have.
>
> Fred
>
>
>
> > Would anyone have a solution on how to fix my problem?
> > Thanks in advance,
> > Elle
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
On Jul 15, 7:41 am, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Thanks Fred. I did just that. I also dropped my products_tags table > because as I understand the ''taggings'' table created by the plugin > acts as the connector. Now, I don''t care about losing that data in > this case, I can always enter it manually (and I am happy not to be > using a depreciated gem).... but I feel hopeless as I am not sure how > to make it work from now on. > > What I''ve done so far is: > 1. Installed plugin > 2. Added db table: taggings. Already had tags with id and name column. > 3. Added acts_as_taggable to my Product class > > When I login as admin to try and tag the products manually, I get this > error message (when I have both acts_as_taggable and > acts_as_taggable_on_steroids plugins installed): >First off, you''re probably asking for trouble by having both installed Secondly, have you tried just looking at the examples in the acts_as_taggable_on_steroids documentation ? Fred --~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
> First off, you''re probably asking for trouble by having both installedWell, when I deleted acts_as_taggable, I got an error of: Processing ProductController#update (for 127.0.0.1 at 2008-07-15 18:35:50) [POST] Parameters: {"commit"=>"Edit", "tags"=>"LS750", "product"=>{...}, "action"=>"update", "id"=>"1", "controller"=>"product"} [...] NoMethodError (undefined method `tag'' for #<Product:0x26064fc>):> Secondly, have you tried just looking at the examples in the > acts_as_taggable_on_steroids documentation ?Yes I have but I guess I''m just too new to easily know how to implement it all :) Advice? Thanks, Elle On Jul 15, 7:58 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Jul 15, 7:41 am, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > Thanks Fred. I did just that. I also dropped my products_tags table > > because as I understand the ''taggings'' table created by the plugin > > acts as the connector. Now, I don''t care about losing that data in > > this case, I can always enter it manually (and I am happy not to be > > using a depreciated gem).... but I feel hopeless as I am not sure how > > to make it work from now on. > > > What I''ve done so far is: > > 1. Installed plugin > > 2. Added db table: taggings. Already had tags with id and name column. > > 3. Added acts_as_taggable to my Product class > > > When I login as admin to try and tag the products manually, I get this > > error message (when I have both acts_as_taggable and > > acts_as_taggable_on_steroids plugins installed): > > First off, you''re probably asking for trouble by having both installed > > Secondly, have you tried just looking at the examples in the > acts_as_taggable_on_steroids documentation ? > > Fred--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
On Jul 15, 9:05 am, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > First off, you''re probably asking for trouble by having both installed > > Well, when I deleted acts_as_taggable, I got an error of: > > Processing ProductController#update (for 127.0.0.1 at 2008-07-15 > 18:35:50) [POST] > Parameters: {"commit"=>"Edit", "tags"=>"LS750", "product"=>{...}, > "action"=>"update", "id"=>"1", "controller"=>"product"} > [...] > NoMethodError (undefined method `tag'' for #<Product:0x26064fc>): > > > Secondly, have you tried just looking at the examples in the > > acts_as_taggable_on_steroids documentation ? > > Yes I have but I guess I''m just too new to easily know how to > implement it all :)Well accordeing to those docs tag doesn''t exists: all those examples show manipulation of tag_list (tag_list.add, tag_list.remove etc...) Fred> > Advice? > > Thanks, > Elle > > On Jul 15, 7:58 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > wrote: > > > On Jul 15, 7:41 am, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > > > Thanks Fred. I did just that. I also dropped my products_tags table > > > because as I understand the ''taggings'' table created by the plugin > > > acts as the connector. Now, I don''t care about losing that data in > > > this case, I can always enter it manually (and I am happy not to be > > > using a depreciated gem).... but I feel hopeless as I am not sure how > > > to make it work from now on. > > > > What I''ve done so far is: > > > 1. Installed plugin > > > 2. Added db table: taggings. Already had tags with id and name column. > > > 3. Added acts_as_taggable to my Product class > > > > When I login as admin to try and tag the products manually, I get this > > > error message (when I have both acts_as_taggable and > > > acts_as_taggable_on_steroids plugins installed): > > > First off, you''re probably asking for trouble by having both installed > > > Secondly, have you tried just looking at the examples in the > > acts_as_taggable_on_steroids documentation ? > > > Fred--~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I don''t have tag_list method. I haven''t used it with the gem.
My tag
controller has:
def list
   @page_title = ''Listing tags''
   @tags = Tag.find(:all)
   @tag_pages, @tags = paginate :tags, :order => :name, :per_page =>
10
  end
  def show
    # tag = params[:id]
    @tag = Tag.find(params[:id])
    @page_title = "Products tagged with ''#{tag}''"
    @products = Product.find_tagged_with(:any => tag, :separator =>
'','')
  end
and Tag class has:
has_and_belongs_to_many :products
Any suggestions to how I could fix this?
Thanks,
Elle
On Jul 15, 8:11 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> On Jul 15, 9:05 am, elle
<wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
>
>
> > > First off, you''re probably asking for trouble by having
both installed
>
> > Well, when I deleted acts_as_taggable, I got an error of:
>
> > Processing ProductController#update (for 127.0.0.1 at 2008-07-15
> > 18:35:50) [POST]
> >   Parameters: {"commit"=>"Edit",
"tags"=>"LS750", "product"=>{...},
> > "action"=>"update",
"id"=>"1",
"controller"=>"product"}
> > [...]
> > NoMethodError (undefined method `tag'' for
#<Product:0x26064fc>):
>
> > > Secondly, have you tried just looking at the examples in the
> > > acts_as_taggable_on_steroids documentation ?
>
> > Yes I have but I guess I''m just too new to easily know how to
> > implement it all :)
>
> Well accordeing to those docs tag doesn''t exists: all those
examples
> show manipulation of tag_list (tag_list.add, tag_list.remove etc...)
>
> Fred
>
>
>
> > Advice?
>
> > Thanks,
> > Elle
>
> > On Jul 15, 7:58 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > wrote:
>
> > > On Jul 15, 7:41 am, elle
<wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
>
> > > > Thanks Fred. I did just that. I also dropped my
products_tags table
> > > > because as I understand the ''taggings''
table created by the plugin
> > > > acts as the connector. Now, I don''t care about
losing that data in
> > > > this case, I can always enter it manually (and I am happy
not to be
> > > > using a depreciated gem).... but I feel hopeless as I am not
sure how
> > > > to make it work from now on.
>
> > > > What I''ve done so far is:
> > > > 1. Installed plugin
> > > > 2. Added db table: taggings. Already had tags with id and
name column.
> > > > 3. Added acts_as_taggable to my Product class
>
> > > > When I login as admin to try and tag the products manually,
I get this
> > > > error message (when I have both acts_as_taggable and
> > > > acts_as_taggable_on_steroids plugins installed):
>
> > > First off, you''re probably asking for trouble by having
both installed
>
> > > Secondly, have you tried just looking at the examples in the
> > > acts_as_taggable_on_steroids documentation ?
>
> > > Fred
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
On Jul 15, 9:20 am, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I don''t have tag_list method. I haven''t used it with the gem. My tag > controller has: >If you look at acts_as_taggable_with_steroids, it adds that method to your models (when you call acts_as_taggable). I think you''re getting confused because you think acts_as_taggable_with_steroids is a drop in replacement for acts_as_taggable which it would appear it isn''t. The examples in its documentation look pretty straightforward, I suggest you forget what you know about acts_as_taggable and look at those instead. Fred --~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I agree the examples do look straightforward. But as usual, I still have questions: I started the console and did the following:>>p = Product.find(:first)=>#<Product:0x2285ad0 @attributes=...>>p.tag_list.add("tagnamehere")=> ["tagnamehere"]>>p=>#<Product:0x2285ad0 @tag_list=["tagnamehere"], @tags=[], ... Now, I don''t understand what is the difference between @tag_list and @tags. I''ve also looked at http://taggable.rubyforge.org/ and tried to use: p.tag --> error: NoMethodError: undefined method `tag_model'' for Product:Class p.tag_with --> error: NoMethodError: undefined method `tag_with'' for #<Product:0x2285ad0> p.tag.add --> ArgumentError: wrong number of arguments (0 for 1) from (irb):7:in `tag'' from (irb):7 Elle On Jul 15, 9:13 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> On Jul 15, 9:20 am, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I don''t have tag_list method. I haven''t used it with the gem. My tag > > controller has: > > If you look at acts_as_taggable_with_steroids, it adds that method to > your models (when you call acts_as_taggable). > I think you''re getting confused because you think > acts_as_taggable_with_steroids is a drop in replacement for > acts_as_taggable which it would appear it isn''t. > The examples in its documentation look pretty straightforward, I > suggest you forget what you know about acts_as_taggable and look at > those instead. > > Fred--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
One more question. When I am still in console, I added a tag to
p.tag_list, then when I want to save the product (p.save) I get the
following error:
NoMethodError: undefined method `find_or_create_with_like_by_name'' for
Tag:Class
        from ./script/../config/../config/../vendor/rails/activerecord/
lib/active_record/base.rb:1235:in `method_missing''
        from ./script/../config/../config/../vendor/plugins/
acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:182:in
`save_tags''
        from ./script/../config/../config/../vendor/plugins/
acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:181:in `each''
        from ./script/../config/../config/../vendor/plugins/
acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:181:in
`save_tags''
        ...
Would anyone know why I get this error?
Thanks,
Elle
On Jul 16, 6:46 pm, elle
<wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> I agree the examples do look straightforward. But as usual, I still
> have questions:
> I started the console and did the following:>>p =
Product.find(:first)
>
> =>#<Product:0x2285ad0
@attributes=...>>p.tag_list.add("tagnamehere")
> => ["tagnamehere"]
> >>p
>
> =>#<Product:0x2285ad0 @tag_list=["tagnamehere"], @tags=[],
...
>
> Now, I don''t understand what is the difference between @tag_list
and
> @tags.
>
> I''ve also looked athttp://taggable.rubyforge.org/and tried to use:
> p.tag --> error: NoMethodError: undefined method `tag_model''
for
> Product:Class
> p.tag_with --> error: NoMethodError: undefined method
`tag_with'' for
> #<Product:0x2285ad0>
> p.tag.add --> ArgumentError: wrong number of arguments (0 for 1)
>         from (irb):7:in `tag''
>         from (irb):7
>
> Elle
>
> On Jul 15, 9:13 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> wrote:
>
> > On Jul 15, 9:20 am, elle
<wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I
don''t have tag_list method. I haven''t used it with the gem. My
tag
> > > controller has:
>
> > If you look at acts_as_taggable_with_steroids, it adds that method to
> > your models (when you call acts_as_taggable).
> > I think you''re getting confused because you think
> > acts_as_taggable_with_steroids is a drop in replacement for
> > acts_as_taggable which it would appear it isn''t.
> > The examples in its documentation look pretty straightforward, I
> > suggest you forget what you know about acts_as_taggable and look at
> > those instead.
>
> > Fred
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
On 16 Jul 2008, at 07:46, elle wrote:> > I agree the examples do look straightforward. But as usual, I still > have questions: > I started the console and did the following: >>> p = Product.find(:first) > =>#<Product:0x2285ad0 @attributes=... >>> p.tag_list.add("tagnamehere") > => ["tagnamehere"] >>> p > =>#<Product:0x2285ad0 @tag_list=["tagnamehere"], @tags=[], ... > > Now, I don''t understand what is the difference between @tag_list and > @tags.internal implemenation details> > I''ve also looked at http://taggable.rubyforge.org/ and tried to use: > p.tag --> error: NoMethodError: undefined method `tag_model'' for > Product:Class > p.tag_with --> error: NoMethodError: undefined method `tag_with'' for > #<Product:0x2285ad0> > p.tag.add --> ArgumentError: wrong number of arguments (0 for 1) > from (irb):7:in `tag'' > from (irb):7 >I think you will definitely confuse things by chopping and changing between multiple tagging libraries all with slightly different semantics (and which could easily conflict when used simultaneously) Fred> Elle > > > > > > On Jul 15, 9:13 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > wrote: >> On Jul 15, 9:20 am, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I don''t have >> tag_list method. I haven''t used it with the gem. My tag >>> controller has: >> >> If you look at acts_as_taggable_with_steroids, it adds that method to >> your models (when you call acts_as_taggable). >> I think you''re getting confused because you think >> acts_as_taggable_with_steroids is a drop in replacement for >> acts_as_taggable which it would appear it isn''t. >> The examples in its documentation look pretty straightforward, I >> suggest you forget what you know about acts_as_taggable and look at >> those instead. >> >> Fred > >--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
On 16 Jul 2008, at 08:32, elle wrote:> > One more question. When I am still in console, I added a tag to > p.tag_list, then when I want to save the product (p.save) I get the > following error: >That implies that you''ve got your own tag model in app/models which is taking precedence over the one bundled in the plugin. Fred> NoMethodError: undefined method `find_or_create_with_like_by_name'' for > Tag:Class > from ./script/../config/../config/../vendor/rails/activerecord/ > lib/active_record/base.rb:1235:in `method_missing'' > from ./script/../config/../config/../vendor/plugins/ > acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:182:in > `save_tags'' > from ./script/../config/../config/../vendor/plugins/ > acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:181:in `each'' > from ./script/../config/../config/../vendor/plugins/ > acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:181:in > `save_tags'' > ... > > > Would anyone know why I get this error? > > Thanks, > Elle > > > > > On Jul 16, 6:46 pm, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> I agree the examples do look straightforward. But as usual, I still >> have questions: >> I started the console and did the following:>>p = >> Product.find(:first) >> >> =>#<Product:0x2285ad0 @attributes=...>>p.tag_list.add("tagnamehere") >> => ["tagnamehere"] >>>> p >> >> =>#<Product:0x2285ad0 @tag_list=["tagnamehere"], @tags=[], ... >> >> Now, I don''t understand what is the difference between @tag_list and >> @tags. >> >> I''ve also looked athttp://taggable.rubyforge.org/and tried to use: >> p.tag --> error: NoMethodError: undefined method `tag_model'' for >> Product:Class >> p.tag_with --> error: NoMethodError: undefined method `tag_with'' for >> #<Product:0x2285ad0> >> p.tag.add --> ArgumentError: wrong number of arguments (0 for 1) >> from (irb):7:in `tag'' >> from (irb):7 >> >> Elle >> >> On Jul 15, 9:13 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >> wrote: >> >>> On Jul 15, 9:20 am, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I don''t have >>> tag_list method. I haven''t used it with the gem. My tag >>>> controller has: >> >>> If you look at acts_as_taggable_with_steroids, it adds that method >>> to >>> your models (when you call acts_as_taggable). >>> I think you''re getting confused because you think >>> acts_as_taggable_with_steroids is a drop in replacement for >>> acts_as_taggable which it would appear it isn''t. >>> The examples in its documentation look pretty straightforward, I >>> suggest you forget what you know about acts_as_taggable and look at >>> those instead. >> >>> Fred > >--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Thanks Fred. That helped. I looked at a couple tutorials and none
mentioned having a tag model (or the original plugin).
One tutorial that was very helpful was:
http://dagobart.wordpress.com/2008/06/19/for-purpose-of-reference-enable-tagging-in-a-rails-model/
Removing my tag model let''s me save the product :)
When I go to view product, I can see my assigned tag. But I still have
questions/problems:
Q1. I''ve been having problems trying to update a product. My
product_controller.rb#update has:
@product.tag(params[:tags], :separator => '','', :clear =>
true)
When I try to update a product I get this error:
NoMethodError in ProductController#update
undefined method `tag'' for #<Product:0x23e6dd4>
Q2. To display the tags and links to show tags I use a helper method
in application_helper.rb:
def display_tags(product)
    product.tags.collect{|tag| link_to tag.name, :controller => ''/
tag'', :action => ''show'', :id => tag.name
}.join(", ") if product.tags
end
My tag_controller.rb#show is:
def show
    @tag = Tag.find(params[:id])
    @page_title = "Products tagged with ''#{tag}''"
    @products = Product.find_tagged_with(:any => tag, :separator =>
'','')
  end
But when I try to view all other products with the same tag I get an
error:
NameError in TagController#show
undefined local variable or method `tag'' for #<TagController:
0x2514c4c>
Should I even have a tag controller?
The plugin docs use Product.find_tagged_with(''tag''). How could
I use
that?
Thanks again so much,
Elle
On Jul 16, 7:43 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> On 16 Jul 2008, at 08:32, elle wrote:
>
>
>
> > One more question. When I am still in console, I added a tag to
> > p.tag_list, then when I want to save the product (p.save) I get the
> > following error:
>
> That implies that you''ve got your own tag model in app/models
which is
> taking precedence over the one bundled in the plugin.
>
> Fred
>
> > NoMethodError: undefined method
`find_or_create_with_like_by_name'' for
> > Tag:Class
> >        from ./script/../config/../config/../vendor/rails/activerecord/
> > lib/active_record/base.rb:1235:in `method_missing''
> >        from ./script/../config/../config/../vendor/plugins/
> > acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:182:in
> > `save_tags''
> >        from ./script/../config/../config/../vendor/plugins/
> > acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:181:in
`each''
> >        from ./script/../config/../config/../vendor/plugins/
> > acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:181:in
> > `save_tags''
> >        ...
>
> > Would anyone know why I get this error?
>
> > Thanks,
> > Elle
>
> > On Jul 16, 6:46 pm, elle
<wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> >> I agree the examples do look straightforward. But as usual, I
still
> >> have questions:
> >> I started the console and did the following:>>p >
>> Product.find(:first)
>
> >> =>#<Product:0x2285ad0
@attributes=...>>p.tag_list.add("tagnamehere")
> >> => ["tagnamehere"]
> >>>> p
>
> >> =>#<Product:0x2285ad0 @tag_list=["tagnamehere"],
@tags=[], ...
>
> >> Now, I don''t understand what is the difference between
@tag_list and
> >> @tags.
>
> >> I''ve also looked athttp://taggable.rubyforge.org/andtried
to use:
> >> p.tag --> error: NoMethodError: undefined method
`tag_model'' for
> >> Product:Class
> >> p.tag_with --> error: NoMethodError: undefined method
`tag_with'' for
> >> #<Product:0x2285ad0>
> >> p.tag.add --> ArgumentError: wrong number of arguments (0 for
1)
> >>        from (irb):7:in `tag''
> >>        from (irb):7
>
> >> Elle
>
> >> On Jul 15, 9:13 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> >> wrote:
>
> >>> On Jul 15, 9:20 am, elle
<wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I
don''t have
> >>> tag_list method. I haven''t used it with the gem. My
tag
> >>>> controller has:
>
> >>> If you look at acts_as_taggable_with_steroids, it adds that
method
> >>> to
> >>> your models (when you call acts_as_taggable).
> >>> I think you''re getting confused because you think
> >>> acts_as_taggable_with_steroids is a drop in replacement for
> >>> acts_as_taggable which it would appear it isn''t.
> >>> The examples in its documentation look pretty straightforward,
I
> >>> suggest you forget what you know about acts_as_taggable and
look at
> >>> those instead.
>
> >>> Fred
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
On 16 Jul 2008, at 09:57, elle wrote:> > Thanks Fred. That helped. I looked at a couple tutorials and none > mentioned having a tag model (or the original plugin). > One tutorial that was very helpful was: > http://dagobart.wordpress.com/2008/06/19/for-purpose-of-reference-enable-tagging-in-a-rails-model/ > Removing my tag model let''s me save the product :) > > When I go to view product, I can see my assigned tag. But I still have > questions/problems: > > Q1. I''ve been having problems trying to update a product. My > product_controller.rb#update has: > @product.tag(params[:tags], :separator => '','', :clear => true) > > When I try to update a product I get this error: > NoMethodError in ProductController#update > undefined method `tag'' for #<Product:0x23e6dd4> >according to the plugin docs you should be using tag_list (ie tag_list=, tag_list.add etc...> Q2. To display the tags and links to show tags I use a helper method > in application_helper.rb: > def display_tags(product) > product.tags.collect{|tag| link_to tag.name, :controller => ''/ > tag'', :action => ''show'', :id => tag.name }.join(", ") if product.tags > end > > My tag_controller.rb#show is: > def show > @tag = Tag.find(params[:id]) > @page_title = "Products tagged with ''#{tag}''" > @products = Product.find_tagged_with(:any => tag, :separator => > '','') > end > > But when I try to view all other products with the same tag I get an > error:You''ve just got a syntax error there - it should be @tag not tag> > NameError in TagController#show > undefined local variable or method `tag'' for #<TagController: > 0x2514c4c> > > Should I even have a tag controller? > The plugin docs use Product.find_tagged_with(''tag''). How could I use > that?Product.find_tagged_with @tag should work (assuming @tag contains a tag) I''d encourage you to look closely at the docs, all i''ve done here is repeat them to you Fred> Thanks again so much, > Elle > > > On Jul 16, 7:43 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> > wrote: >> On 16 Jul 2008, at 08:32, elle wrote: >> >> >> >>> One more question. When I am still in console, I added a tag to >>> p.tag_list, then when I want to save the product (p.save) I get the >>> following error: >> >> That implies that you''ve got your own tag model in app/models which >> is >> taking precedence over the one bundled in the plugin. >> >> Fred >> >>> NoMethodError: undefined method `find_or_create_with_like_by_name'' >>> for >>> Tag:Class >>> from ./script/../config/../config/../vendor/rails/ >>> activerecord/ >>> lib/active_record/base.rb:1235:in `method_missing'' >>> from ./script/../config/../config/../vendor/plugins/ >>> acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:182:in >>> `save_tags'' >>> from ./script/../config/../config/../vendor/plugins/ >>> acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:181:in `each'' >>> from ./script/../config/../config/../vendor/plugins/ >>> acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:181:in >>> `save_tags'' >>> ... >> >>> Would anyone know why I get this error? >> >>> Thanks, >>> Elle >> >>> On Jul 16, 6:46 pm, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >>>> I agree the examples do look straightforward. But as usual, I still >>>> have questions: >>>> I started the console and did the following:>>p >>>> Product.find(:first) >> >>>> =>#<Product:0x2285ad0 >>>> @attributes=...>>p.tag_list.add("tagnamehere") >>>> => ["tagnamehere"] >>>>>> p >> >>>> =>#<Product:0x2285ad0 @tag_list=["tagnamehere"], @tags=[], ... >> >>>> Now, I don''t understand what is the difference between @tag_list >>>> and >>>> @tags. >> >>>> I''ve also looked athttp://taggable.rubyforge.org/andtried to use: >>>> p.tag --> error: NoMethodError: undefined method `tag_model'' for >>>> Product:Class >>>> p.tag_with --> error: NoMethodError: undefined method `tag_with'' >>>> for >>>> #<Product:0x2285ad0> >>>> p.tag.add --> ArgumentError: wrong number of arguments (0 for 1) >>>> from (irb):7:in `tag'' >>>> from (irb):7 >> >>>> Elle >> >>>> On Jul 15, 9:13 pm, Frederick Cheung <frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> >>>> wrote: >> >>>>> On Jul 15, 9:20 am, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I don''t have >>>>> tag_list method. I haven''t used it with the gem. My tag >>>>>> controller has: >> >>>>> If you look at acts_as_taggable_with_steroids, it adds that method >>>>> to >>>>> your models (when you call acts_as_taggable). >>>>> I think you''re getting confused because you think >>>>> acts_as_taggable_with_steroids is a drop in replacement for >>>>> acts_as_taggable which it would appear it isn''t. >>>>> The examples in its documentation look pretty straightforward, I >>>>> suggest you forget what you know about acts_as_taggable and look >>>>> at >>>>> those instead. >> >>>>> Fred > >--~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
Sorry to be a bother and thank you so much for your help Fred. Almost
all is fixed. Got one last problem/question.
On every product page, there is a section for recommended products --
which really are products tagged with similar tags.
In my catalog_controller.rb#show I have:
    @tag = Tag.find(params[:id])
    @tagged_related = Product.find_tagged_with (@tag, :match_all =>
true)
But instead of picking on the tag''s id, it gets the product''s
id. This
causes two problems:
1. It doesn''t really show related products
2. If the id it gets doesn''t exists in the tags table, i get an error.
I''m just not sure how to pick up the tag id instead.
Thanks,
Elle
On Jul 16, 10:34 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> On 16 Jul 2008, at 09:57, elle wrote:
>
>
>
>
>
> > Thanks Fred. That helped. I looked at a couple tutorials and none
> > mentioned having a tag model (or the original plugin).
> > One tutorial that was very helpful was:
>
>http://dagobart.wordpress.com/2008/06/19/for-purpose-of-reference-ena...
> > Removing my tag model let''s me save the product :)
>
> > When I go to view product, I can see my assigned tag. But I still have
> > questions/problems:
>
> > Q1. I''ve been having problems trying to update a product. My
> > product_controller.rb#update has:
> > @product.tag(params[:tags], :separator => '','',
:clear => true)
>
> > When I try to update a product I get this error:
> > NoMethodError in ProductController#update
> > undefined method `tag'' for #<Product:0x23e6dd4>
>
> according to the plugin docs you should be using tag_list (ie
> tag_list=, tag_list.add etc...
>
>
>
> > Q2. To display the tags and links to show tags I use a helper method
> > in application_helper.rb:
> > def display_tags(product)
> >    product.tags.collect{|tag| link_to tag.name, :controller =>
''/
> > tag'', :action => ''show'', :id =>
tag.name }.join(", ") if product.tags
> > end
>
> > My tag_controller.rb#show is:
> > def show
> >    @tag = Tag.find(params[:id])
> >    @page_title = "Products tagged with
''#{tag}''"
> >    @products = Product.find_tagged_with(:any => tag, :separator
=>
> > '','')
> >  end
>
> > But when I try to view all other products with the same tag I get an
> > error:
>
> You''ve just got a syntax error there - it should be @tag not tag
>
>
>
> > NameError in TagController#show
> > undefined local variable or method `tag'' for
#<TagController:
> > 0x2514c4c>
>
> > Should I even have a tag controller?
> > The plugin docs use Product.find_tagged_with(''tag'').
How could I use
> > that?
>
> Product.find_tagged_with @tag
> should work (assuming @tag contains a tag)
>
> I''d encourage you to look closely at the docs, all i''ve
done here is
> repeat them to you
>
> Fred
>
> > Thanks again so much,
> > Elle
>
> > On Jul 16, 7:43 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> > wrote:
> >> On 16 Jul 2008, at 08:32, elle wrote:
>
> >>> One more question. When I am still in console, I added a tag
to
> >>> p.tag_list, then when I want to save the product (p.save) I
get the
> >>> following error:
>
> >> That implies that you''ve got your own tag model in
app/models which
> >> is
> >> taking precedence over the one bundled in the plugin.
>
> >> Fred
>
> >>> NoMethodError: undefined method
`find_or_create_with_like_by_name''
> >>> for
> >>> Tag:Class
> >>>       from ./script/../config/../config/../vendor/rails/
> >>> activerecord/
> >>> lib/active_record/base.rb:1235:in `method_missing''
> >>>       from ./script/../config/../config/../vendor/plugins/
> >>> acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:182:in
> >>> `save_tags''
> >>>       from ./script/../config/../config/../vendor/plugins/
> >>> acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:181:in
`each''
> >>>       from ./script/../config/../config/../vendor/plugins/
> >>> acts_as_taggable_on_steroids/lib/acts_as_taggable.rb:181:in
> >>> `save_tags''
> >>>       ...
>
> >>> Would anyone know why I get this error?
>
> >>> Thanks,
> >>> Elle
>
> >>> On Jul 16, 6:46 pm, elle
<wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> >>>> I agree the examples do look straightforward. But as
usual, I still
> >>>> have questions:
> >>>> I started the console and did the following:>>p >
>>>> Product.find(:first)
>
> >>>> =>#<Product:0x2285ad0
> >>>>
@attributes=...>>p.tag_list.add("tagnamehere")
> >>>> => ["tagnamehere"]
> >>>>>> p
>
> >>>> =>#<Product:0x2285ad0
@tag_list=["tagnamehere"], @tags=[], ...
>
> >>>> Now, I don''t understand what is the difference
between @tag_list
> >>>> and
> >>>> @tags.
>
> >>>> I''ve also looked
athttp://taggable.rubyforge.org/andtriedto use:
> >>>> p.tag --> error: NoMethodError: undefined method
`tag_model'' for
> >>>> Product:Class
> >>>> p.tag_with --> error: NoMethodError: undefined method
`tag_with''
> >>>> for
> >>>> #<Product:0x2285ad0>
> >>>> p.tag.add --> ArgumentError: wrong number of arguments
(0 for 1)
> >>>>       from (irb):7:in `tag''
> >>>>       from (irb):7
>
> >>>> Elle
>
> >>>> On Jul 15, 9:13 pm, Frederick Cheung
<frederick.che...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
> >>>> wrote:
>
> >>>>> On Jul 15, 9:20 am, elle
<wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> I
don''t have
> >>>>> tag_list method. I haven''t used it with the
gem. My tag
> >>>>>> controller has:
>
> >>>>> If you look at acts_as_taggable_with_steroids, it adds
that method
> >>>>> to
> >>>>> your models (when you call acts_as_taggable).
> >>>>> I think you''re getting confused because you
think
> >>>>> acts_as_taggable_with_steroids is a drop in
replacement for
> >>>>> acts_as_taggable which it would appear it
isn''t.
> >>>>> The examples in its documentation look pretty
straightforward, I
> >>>>> suggest you forget what you know about
acts_as_taggable and look
> >>>>> at
> >>>>> those instead.
>
> >>>>> Fred
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
On Jul 19, 9:49 am, elle <wazne...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > On every product page, there is a section for recommended products -- > which really are products tagged with similar tags. > In my catalog_controller.rb#show I have: > @tag = Tag.find(params[:id]) > @tagged_related = Product.find_tagged_with (@tag, :match_all => > true) > > But instead of picking on the tag''s id, it gets the product''s id. This > causes two problems: > 1. It doesn''t really show related products > 2. If the id it gets doesn''t exists in the tags table, i get an error. > I''m just not sure how to pick up the tag id instead.If problem is that params[:id] is a product id then surely the problem is just with whatever bit of code produces the link to this page? Fred --~--~---------~--~----~------------~-------~--~----~ 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@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---