Ruby on Rails,包括带有参数的模块

用户名

包括ruby模块时,是否可以使用参数?我有一个Assetable模块,该模块包含在许多类中。我希望能够即时生成attr_accessor。

module Assetable
  extend ActiveSupport::Concern

  included do 
    (argument).times do |i| 
      attr_accessor "asset_#{i}".to_sym
      attr_accessible "asset_#{i}".to_sym
    end
  end
end 
加布里埃尔·德·奥利维拉(Gabriel de Oliveira)

包含模块时,无法传递参数。最好的下一件事是定义一个类方法,该方法可让您随后创建所需的内容:

module Assetable
  extend ActiveSupport::Concern
  module ClassMethods
    def total_assets(number)
      number.times do |i|
        attr_accessor "asset_#{i}"
        attr_accessible "asset_#{i}"
      end
    end
  end
end

class C
  include Assetable
  total_assets 3
end

o = C.new
o.asset_2 = "Some value."
o.asset_2  #=> "Some value."

在覆盖included关注范围内方法时也要小心,因为它也被所使用ActiveSupport::Concern您应该super在overriden方法内调用以确保正确的初始化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Ruby on Rails搜索带有多个参数

来自分类Dev

Ruby on Rails中带有连字符的字段参数

来自分类Dev

Ruby:模块扩展/包括模块

来自分类Dev

jQuery Ajax POST请求在Rails中带有参数(Ruby on Rails)

来自分类Dev

带有Ruby on Rails的Google Charts API

来自分类Dev

带有nginx ddos保护的Ruby on Rails

来自分类Dev

带有表连接的 Ruby on Rails 模型

来自分类Dev

Ruby on Rails迭代参数

来自分类Dev

传递带有参数的方法作为ruby中的参数

来自分类Dev

带有rspec的Ruby模块可随机化天气

来自分类Dev

带有可选选项和&block参数的Ruby方法

来自分类Dev

带有参数的Ruby DSL define_method

来自分类Dev

Ruby:带有嵌套参数的http POST无法正常工作

来自分类Dev

如何在ruby中动态创建带有参数的方法?

来自分类Dev

Ruby:发送带有块参数的define_method

来自分类Dev

带有可变数量参数的 Ruby 调用系统或 exec

来自分类Dev

Ruby on Rails:模型所需的参数

来自分类Dev

参数丢失错误-Ruby on Rails

来自分类Dev

Ruby on Rails:从URL解码参数

来自分类Dev

Ruby on Rails:模型所需的参数

来自分类Dev

Ruby on Rails,嵌套参数许可

来自分类Dev

带有bootstrap3行类的Ruby on Rails foreach

来自分类Dev

Ruby on Rails发送带有多行正文的电子邮件

来自分类Dev

带有Office 365的Ruby Rails Devise和SAML

来自分类Dev

带有Javascript库的Ruby on Rails 6 Webpack

来自分类Dev

带有select_datetime的Ruby on Rails表单方法

来自分类Dev

在Rails上带有ruby的动态AJAX数据表

来自分类Dev

Ruby on Rails“找不到带有'id'= links的客户”

来自分类Dev

Ruby on Rails-带有时间解析的查询