我是 ROR 新手,正在尝试将我的 PhP 应用程序转换为 ROR 应用程序。有一个 php 文件 common.php 几乎包含在所有其他文件中。同样,common.php 依次使用 RPCClient.php 和 User.php 。变量和方法在 php 文件之间共享。那么,当数据在不同文件之间共享时,我应该在 ROR 类或模块中使用什么。
最佳答案
在 Ruby 中,您需要将事物组织到 namespace 中,而实现此目的的最佳方法是通过类和模块声明。
通常,类
是您将创建其实例的东西,模块
是“混合”的东西(例如,由其他模块或类导入的一组方法),或直接使用。
例如:
class User < ActiveRecord::Base
end
这里Users
是一个类,因为您创建用户,并且每个用户都由一个对象表示。
您还可以将方法声明为“mixins”或可包含的模块:
module UserPermissions
def can_delete_post?(post)
post.user_id == self.id
end
end
class User < ActiveRecord::Base
include UserPermissions
end
现在 user.can_delete_post?
是一个有效的方法,并且该方法在给定用户实例的上下文中执行。
您还可以创建仅是可以直接调用的方法集合的模块:
module AppConfig
def self.account_limit
1
end
end
AppConfig.account_limit
# => 1
您可以直接调用该方法,而无需包含
它。这也是一种相当常见的模式,它只是一个组织 namespace 。
像许多面向对象的语言一样,特别是Smalltalk -派生的,您需要阅读 object oriented design patterns了解如何正确构建事物。
关于php - 在 ROR 中使用什么 : Class or Module,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50258413/