ruby-on-rails - ruby/rails bool 方法命名约定

标签 ruby-on-rails ruby methods naming-conventions

我有一个关于 ruby​​/rails 方法命名约定或良好实践的简短问题。 考虑以下方法:

# some methods performing some sort of 'action'
def action; end
def action!; end

# some methods checking if performing 'action' is permitted
def action?; end
def can_action?; end
def action_allowed?; end

所以我想知道,这三种与号方法中的哪一种是请求权限的“最佳”方式。我会以某种方式使用第一个,但在某些情况下,我认为这可能与 has_performed_action? 的含义混淆。 所以第二种方法可能会更清楚,但也有点冗长。第三个实际上只是为了完整性。我不太喜欢那个。

那么,是否有任何共同商定的良好做法?

最佳答案

我认为这取决于您要执行的操作和要检查的操作。我的目标是可读性和最少的混淆:

self.run
self.can_run? # can this object run?
self.running_allowed? # is running allowed here or by this user?

self.redeem!
self.redeemable? # is this object currently redeemable?

self.copy_to_clipboard
self.copy_to_dashboard
self.copyable? or self.can_be_copied? #can this object be copied
self.copy_allowed?(:clipboard) # is copying to the clipboard allowed by me?

关于ruby-on-rails - ruby/rails bool 方法命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4951597/

相关文章:

ruby-on-rails - 防止'变成'的方法

mysql - 使用 Ruby 将 MySQL 转储导入到 Postgres 数据库

ruby-on-rails - 计算最近 7 天内创建的记录

java - 我想让打印机打印,直到帐户中的余额不足以打印作业为止

java - java中的静态和非静态方法

perl - 如何检查每次调用对象方法时的某些值?

javascript - 在 Rails 应用程序中重新加载部分内容

ruby-on-rails - RSpec --only-failures 错误输出

ruby-on-rails - Rails 3.1由于 Assets 的原因,开发模式很慢,怎么办?

ruby - RSpec 不太严格的平等期望测试