I'm trying to do something relatively basic. I'm using the restful authentication plugin, so I have Users, and I also have Tasks which belong to a user: class User < ActiveRecord::Base has_many :assigned_tasks, :class_name => "Task", :foreign_key => "assigned_to" has_many :created_tasks, :class_name => "Task", :foreign_key => "created_by" end class Task < ActiveRecord::Base belongs_to :creator, :class_name => "User", :foreign_key => "created_by" belongs_to :user, :class_name => "User", :foreign_key => "assigned_to" end I'm using Rails 2.1.1 so I'm doing this in the view: # new.html.erb <% form_for @task do |f| %> ... fields <% end %> But the application posts to the index action, not the create action like it's supposed to; even if I try to post a blank form, when errors should be raised, it's posting without raising any errors whatsoever. The new action in the controller reads like this: def new @task = @current_user.created_tasks.build end and here's the create action: def create @task = @current_user.created_tasks.build(params[:task]) if @task.save flash[:notice] = "Task was created" redirect_to task_path(@task) else render :action => 'new' end end Can someone let me know what I'm doing wrong? Should I not be creating the task with build? I thought I was getting pretty decent with the basics of Rails, but I guess not because something this simple is tripping me up.
on 2008-10-22 01:36
on 2008-10-22 02:27
Okay... I have no idea what the problem was, but it seems to be working right now.
on 2008-10-22 05:17
if you do task.save! it should show you where it fails
on 2008-11-05 00:03
I had the same problem, restarting the server helped.