I don't get why my model isn't saving - assistance requested


#1

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.


#2

Okay… I have no idea what the problem was, but it seems to be
working right now.


#3

I had the same problem, restarting the server helped.


#4

if you do task.save! it should show you where it fails