I want one record in my table to be undeletable by a user. I guess/know
i can achieve this by writing code in my controller and model to only
present the user with reocords which can be deleted but im wondering if
there are any magic rails methods that can do this in a concrete way?
background: Im writing a todolist which has two tables, tasks and
projects whih have a standard has_many relationship. ie. a project has
many tasks.
When a user creates a task they specify whihc project they want to add
it to.
If a task is just a one off and not aprt of any project the user can
specify “No project” in teh project dropdown. this in fact is a project
but just using it to create the illusion! this is the record i dont want
the user to be able to delete.
On Thu, Jan 22, 2009 at 2:28 PM, Adam A. < [email protected]> wrote:
When a user creates a task they specify whihc project they want to add
it to.
If a task is just a one off and not aprt of any project the user can
specify “No project” in teh project dropdown. this in fact is a project
but just using it to create the illusion! this is the record i dont want
the user to be able to delete.
class MyModel < ActiveRecord::Base
def initialize(*args)
super(*args)
readonly!
end
end
Wouldn’t this make all records of the table read only? I don’t think
that’s what the OP wanted.
I’d say use the the before_destroy callback to validate the deletion:
def before_destroy
!project_name.eql?(“No project”)
end