在我的应用程序中,我note.rb
使用了如下所示的架构。我想要做的是限制编辑笔记的能力。基本上,如果笔记是在过去 24 小时内创建的,则允许您更新任何您想要的内容。24小时后,你所能做的就是改变remind_at
时间。我在note.rb
文件中有一个方法可以检查注释是否可编辑。如果是我显示不同的部分。但这仅限制了前端,如果有人打开编辑窗口或输入 URL,他们仍然可以在 24 小时后编辑注释。
我正在尝试做的是编写一个before_update
方法来检查您是否被允许更新body
笔记。不管什么你都可以更新remind_at
时间。部分问题在于控制器知道这是否只是对remind_at
时间的更改的方式是通过params[:reschedule]
并且params
在模型中无法访问。
# == Schema Information
#
# Table name: notes
#
# id :integer not null, primary key
# body :text
# remind_at :datetime
# created_at :datetime
# updated_at :datetime
# Only allow editing of notes that are less that 1 day old
def editable?
self.created_at > (Time.now-1.day)
end