Submit button has no effect on the db

I think that the line with “@feed.tags <<
Tag.find_or_create_by_tag(params
[:which_tag]) unless params[:which_tag].blank?” isn’t correctly saving
data.

What I want to happen is that the user places a checkmark on a “tag”,
then clicks the button. That adds a record to the “memberships” table
with three fields:

feed_id
tag_id
membership_id

However, the db remains unchanged :frowning:

An excerpt from
http://strawr.googlecode.com/svn/trunk/app/controllers/feeds_controller.rb
with the relevant method:

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

def add_some_tags

logger.info
add_some_tags
logger.info
add_some_tags
logger.info
add_some_tags
#logger.info “foo: #{@my_var}”
#logger.info “my text”
#@my_var = “something”

@feed = Feed.find(params[:id])

logger.info “@feed: #{@feed}”

@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])
unless params[:which_tag].blank?
}
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 $

thanks,

Thufir

On 1/17/08, Thufir [email protected] wrote:

tag_id
thufir@arrakis ~/strawr $
add_some_tags
Tag.find(:all) - @feed.tags
if @tags_to_add.any? and @feed.save
flash[:notice] = ‘Tags have been added!’
end
redirect_to :action => ‘show’, :id => @feed
end

end

Poking around in the code, I notice a few things.

  1. feed has many tags through memberships, and membership.rb has some
    validations, perhaps these are failing.

  2. In your controller code, in the method above you are using
    push_with_attributes, which is deprecated, you seem to be mixing hmt
    with the obsolete push_with_attributes.


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

On Jan 17, 6:20 am, “Rick DeNatale” [email protected] wrote:
[…]

Poking around in the code, I notice a few things.

  1. feed has many tags through memberships, and membership.rb has some
    validations, perhaps these are failing.

Yes, I was considering this and dropping the validations; I’ll do
that.

  1. In your controller code, in the method above you are using
    push_with_attributes, which is deprecated, you seem to be mixing hmt
    with the obsolete push_with_attributes.

I want to fix this regardless. I found:

"push_with_attributes and concat_with_attributes on a HABTM
association
are deprecated. Use has_many :through with a join model instead. "

http://groups.google.com/group/ror2ru/msg/d05523f76b396787

But will continue to research this. Ironically, I’m using
has_many :through with a join model already.

-Thufir