- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我无法从源代码中找出类和模块中分别提供的 cattr_*
和 mattr_*
方法之间的区别。我读了这个问题:What is mattr_accessor in a Rails module?其中提供了有关这两种方法的一些详细信息,但没有突出显示差异。
所以我的问题是它们之间有什么区别,为什么我们需要两组方法,因为它们在源代码中实际上是相同的?另外,我们什么时候应该使用哪个?
最佳答案
Module
是类 Class
的父类(super class),因此如果可以想到一个合适的通用名称,则可以将定义访问器的方法放在 Module
并且它适用于模块和类。请注意以下工作:
class Bar
mattr_accessor :test
end
但是
module Foo
cattr_accessor :test
end
行不通。
在应该在类内部使用的方法上使用 c 前缀,在模块内部使用的方法上使用 m 前缀只会帮助您的代码更清晰一些.
关于ruby-on-rails - ActiveSupport 中 mattr_accessor 和 cattr_accessor 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2203800/
当我尝试执行 rails server 和 thin start 时,两者都说:“在任何来源中都找不到 activesupport-3.0.6。” 我安装了 activesupport-3.0.7。我
在迁移到 rails 5 之前,它运行良好,但是当我迁移到 rails 5.1.1 时,它给我这样的错误 ActiveSupport::MessageVerifier::InvalidSignatur
在尝试启动某个开源 Rails 项目的旧版本时,遇到了一条多云的错误消息: “无法激活 activesupport (>= 2.3.2, runtime),已经激活 activesupport-2.1
我在将我的 React on Rails 应用程序部署到 Heroku 时遇到了一些麻烦。我已经阅读并尝试了无数关于如何解决 secret_key_base 和 rails_master_key 问题
我已将 Ruby on Rails 应用程序从 Rails 5.1.2 迁移到 Rails 5.2.0 以使用加密的 secret 。应用程序已成功部署到 Digital Ocean Ubuntu 服
我已将 Ruby on Rails 应用程序从 Rails 5.1.2 迁移到 Rails 5.2.0 以使用加密的 secret 。应用程序已成功部署到 Digital Ocean Ubuntu 服
我找到了 ActiveSupport 变形器类。在哪里可以找到初始化英文变形器的代码? 最佳答案 ActiveSupport inflector.rb文件包含所有词形变化库和模块。 如果您想自定义它,
我正在使用带有 rails 3 的 mongoid 并且最近遇到了一个非常艰难的问题 问题,我需要一个建议。 我正在开发 CMS,其中一个想法是 CMS 将提供 一些基本模型定义和最终用户将在需要时扩
我在纽约有我的 Linux 服务器,配置为 GMT。 我所有的日期都以 UTC 格式保存。 要将这些日期返回给客户,我唯一需要做的是 ? date = my_date.utc_to_local 不管我
我有一个令人尴尬的基本问题: 我正在研究一个处理金钱的普通老式 ruby 模型,一些类方法返回需要格式化才能显示的价格。 过去我曾使用 include ActionView::Helpers::N
我遇到了一个小问题...我正要在 Exercism.io 上开始一些卡塔练习当我运行测试时,我有一个 Gem:ConflictError /Users/john/.rbenv/versions/2.4
我有一个这样的日期对象: >> the_date => Tue, 12 Jun 2012 >> the_date.class => Date 和一个存储为字符串的时区: >> tz = "Pacifi
我已经从 Rails 应用程序中提取了一个类到 a gem 中.它非常非常简单,但我当然想对其进行全面测试(我使用的是 rspec)。 该类进行一些简单的日期计算。它不依赖于 Rails,但由于它是在
我很高兴也很惊讶地发现 ActiveSupport 以我想要的方式计算月数。无论所讨论的月份有多少天,添加 1.month到特定的 Time将使您与 Time 在同一天. > Time.utc(201
我有一个非常简单的设置来测试 rails3 ActiveSupport::Notifications。通过阅读文档,ActiveSupport::Notifications.subscribe 位应该
是否可以在类方法上使用 ActiveSupport::Callbacks?更具体地说,在下面的模块中,您会将 include ActiveSupport::Callbacks 放在哪里,以使 defi
我想在我的一个模型上使用 ActiveSupport 选项 encode_big_decimal_as_string。我应该把它放在模型中吗?我是否在模型实例上调用此方法?我要把它放在配置中的某个地方
我正在研究 CodeSchool 的 RubyBits,我做了一个我只是不理解的练习:“确保 AtariLibrary 类只包含 LibraryUtils 模块,并让 ActiveSupport::C
我在 Rails 3 应用程序中收到 SystemStackError。 我拥有的所有信息都是无用的一行堆栈跟踪(从日志中获取): SystemStackError (stack level too
我知道 include 用于将模块方法作为实例方法访问,而 extend 用于将模块方法作为类方法访问。 对于 ActiveSupport::Concern 某处我看到写成, module Test
我是一名优秀的程序员,十分优秀!