I have a model called Room, and I am trying to allow the user to create
favorites to bookmark certain rooms. The Favorites table contains the
fields "room_id" and "user_id", and in the view for
/rooms/:id I have
the following code:
[code=]<%=link_to("Add to Favorites", favorites_url(:favorite =>
{:user_id => @user.id, :room_id => @room.id}), :method => :post)
%>[/code]
In favorites_controller, my create method looks like this:
[code=]def create
@room = Room.find(:first, :conditions => [''id = ?'',
params[:favorite][:room_id]])
@favorite = Favorite.new(params[:favorite])
respond_to do |format|
puts @favorite.room_id
puts @favorite.user_id
if @favorite.save
flash[:notice] = ''Room was successfully added to your
favorites!''
format.html { redirect_to(rooms_path(@room)) }
format.xml { render :xml => @favorite, :status => :created,
:location => @favorite }
else
format.html { render :action => "new" }
format.xml { render :xml => @favorite.errors, :status =>
:unprocessable_entity }
end
end
end[/code]
The two puts statements print out the room ID and user ID correctly, but
in the site itself I get the following error:
SQLite3::SQLException: favorites.user_id may not be NULL: INSERT INTO
"favorites" ("updated_at", "user_id",
"room_id", "created_at")
VALUES(''2009-04-10 18:04:46'', NULL, NULL, ''2009-04-10
18:04:46'')
If I manually go into the GUI for SQLite3, I can enter in a new row for
favorites fine, but when I try creating a new Favorite through the
console, I receive an error. My model code looks like this:
[code=]class Favorite < ActiveRecord::Base
belongs_to :room
belongs_to :user
named_scope :for_user, lambda { |user_id| { :conditions => ["user_id
?", user_id] }}
attr_accessor :room_id, :user_id
validates_presence_of :room_id, :user_id => "must be filled in"
end[/code]
Any thoughts? I don''t believe it is a problem with the controller
since
it is printing the correct values, but I can''t figure out what is wrong
with the model or database.
--
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
-~----------~----~----~----~------~----~------~--~---