Tag.name in show.rhtml

There’s some cut-and-paste involved from previous, sorta working
versions. I’m looking at line #29, and don’t understand it.

What does tag.name mean? The current Tag object? the name field for
that object? Something else?

I’m getting the following error:

NoMethodError in Feeds#show

Showing app/views/feeds/show.rhtml where line #29 raised:

undefined method `name’ for #<Tag:0xb7179e4c @attributes={“tag”=>“tag
one”, “id”=>“1”}>

Extracted source (around line #29):

26: (None)


27: <% else %>
28: <% for tag in @feed.tags %>
29: <%= tag.name %> 
30: <%= link_to ‘Remove’, { :action => ‘remove_tag’,
31: :id => @feed, :which_tag => tag.id },
32: :confirm => ‘Are you sure?’, :post => true %>

http://localhost:3000/feeds/show/1

The code is at:

http://strawr.googlecode.com/svn/trunk/app/views/feeds/show.rhtml

Thanks,

Thufir

On 16 Jan 2008, at 09:58, Thufir wrote:

There’s some cut-and-paste involved from previous, sorta working
versions. I’m looking at line #29, and don’t understand it.

What does tag.name mean? The current Tag object? the name field for
that object? Something else?
Didn’t you write this to begin with :slight_smile: ?
tag.name means call the name method on tag, and the line above says
you’re iterating through the tags of the feed.

Fred

Hi,

tag object doesn’t have attribute called name and it doesn’t have name
method so you must be getting error you might replace tag.name with
tag.tag

Thufir wrote:

There’s some cut-and-paste involved from previous, sorta working
versions. I’m looking at line #29, and don’t understand it.

What does tag.name mean? The current Tag object? the name field for
that object? Something else?

I’m getting the following error:

NoMethodError in Feeds#show

Showing app/views/feeds/show.rhtml where line #29 raised:

undefined method `name’ for #<Tag:0xb7179e4c @attributes={“tag”=>“tag
one”, “id”=>“1”}>

Extracted source (around line #29):

26: (None)


27: <% else %>
28: <% for tag in @feed.tags %>
29: <%= tag.name %> 
30: <%= link_to ‘Remove’, { :action => ‘remove_tag’,
31: :id => @feed, :which_tag => tag.id },
32: :confirm => ‘Are you sure?’, :post => true %>

http://localhost:3000/feeds/show/1

The code is at:

http://strawr.googlecode.com/svn/trunk/app/views/feeds/show.rhtml

Thanks,

Thufir

On Wed, 16 Jan 2008 10:17:39 +0000, Frederick C. wrote:

Didn’t you write this to begin with ? tag.name means call the name
method on tag, and the line above says you’re iterating through the tags
of the feed.

Fred

Well, there was copy/paste from a dummies book (which, of course, was
deprecated) combined with the fact that I’ve gone back and forth with
subversion revisions due to mucking up a naming convention…

I wish that I’d simply written the view, but that probably wasn’t the
case :frowning:

-Thufir

On Wed, 16 Jan 2008 11:47:50 +0100, Rita Amritkar wrote:

tag object doesn’t have attribute called name and it doesn’t have name
method so you must be getting error you might replace tag.name with
tag.tag

Yes, this now displays everything correctly, in that I can see which
tags
have been associated with a specific feed. That view for the
has_many_through is working.

However, I would like to add CRUD functionality:

thufir@arrakis ~/strawr $
thufir@arrakis ~/strawr $ tail app/controllers/feeds_controller.rb -n 20

def add_some_tags
@feed = Feed.find(params[:id])
@unused_tags =
Tag.find(:all) - @feed.tags

if @unused_tags.any?
@tags_to_add = @unused_tags.select { |tag|
(@params[‘tag’+tag.id.to_s][‘checked’] == ‘1’)}
@tags_to_add.each { |tag|
@feed.tags << Tag.find_or_create_by_tag(params[:which_tag])}
end

if @tags_to_add.any? and @feed.save
flash[:notice] = ‘Tags have been added!’
end
redirect_to :action => ‘show’, :id => @feed
end

end
thufir@arrakis ~/strawr $

In the show I need to add a form to call this method?

thanks,

Thufir

On Wed, 16 Jan 2008 19:28:12 +0000, Thufir wrote:

tag object doesn’t have attribute called name and it doesn’t have name
method so you must be getting error you might replace tag.name with
tag.tag

Yes, this now displays everything correctly, in that I can see which
tags have been associated with a specific feed. That view for the
has_many_through is working.

I forgot that I had installed a plug-in. Ok, my show does now display
the “add tag” button (but only if there are tags not associated with
that
feed.) However, clicking on the button results in:

ActiveRecord::HasManyThroughCantAssociateNewRecords in
FeedsController#add_some_tags

Cannot associate new records through ‘Feed#memberships’ on ‘#’. Both
records must have an id in order to create the has_many :through record
associating them.

RAILS_ROOT: ./script/…/config/…

The feeds/show.rhtml is at

http://strawr.googlecode.com/svn/trunk/app/views/feeds/show.rhtml

I fixed the naming conventions; the model’s look good; the streamlined
plugin has now given a “remove” CRUD interface, which is nice, and
works.

Is it because I’m using deprecated code in the controller, perhaps?

All data was entered during the migration (from db/migrate/00#_.rb
and so forth).