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.