ruby-on-rails - Rails - 创建 protected 默认类别

标签 ruby-on-rails ruby

我想为我的帖子创建一个特殊的类别,这是默认的并且具有三个不同的特征:

  1. 它默认分配给每个创建的帖子
  2. 在其父类别被销毁时分配给从属帖子
  3. 防止任何人删除

所以第一点很容易实现,这里就不重点说了

第二点比较费解。我猜像这样的东西应该进入我的类别模型:

before_destroy :move_dependent_posts

def move_dependent_posts
  #no idea what goes here
end

与第三点相同的问题:我必须检查,如果要删除的类别的 ID 为 1,然后抛出错误?

before_destroy :protect_default_category

def protect_default_category
  return false if category.id(5) #won't work, of course
end

最佳答案

第 2 点:

before_destroy :move_dependent_posts

def move_dependent_posts
  default_category = Category.default_category # find default category here
  posts.each { |post| post.update_attribute(:category, default_category) }
end

第 3 点:

before_destroy :protect_default_category

def protect_default_category
  throw "Default category can't be deleted" if id == 1
end

关于ruby-on-rails - Rails - 创建 protected 默认类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17806248/

相关文章:

sql - 如何按rails中关联的created_at列排序?

ruby-on-rails - 使用 Rails 时如何将 ID 号植入我的数据中?

ruby &! (砰)运算符(operator)

ruby-on-rails - SSL_connect 返回=1 errno=0 状态=SSLv3 读取服务器证书,证书验证失败

ruby - 创建Redis集群时出现Err : Node 127. 0.0.1:6379未配置为集群节点

ruby-on-rails - 将 f.collection_check_boxes 的复选框与 Simple_Form 对齐

ruby-on-rails - 使用嵌套 has_many 进行 Rails 唯一性验证

ruby-on-rails - Rails + Thinking-Sphinx 结果 ids

ruby-on-rails - rails 中图像和 js/css 文件后的问号。为什么?

ruby-on-rails - 提供日期范围的更好方法