标签: alias-method

ruby on rails添加了模型属性更改的功能

在我的rails模型中,我有一个名为employer_wcb的小数属性.如果在更改employer_wcb时将脏位设置为true,我希望如此.我想覆盖employer_wcb setter方法.有没有办法(特别是使用元编程)?

ruby metaprogramming ruby-on-rails alias-method

2
推荐指数
1
解决办法
906
查看次数

alias_attribute以及使用原始属性名称创建和方法会导致循环

我试图在我的模型中的一个属性中动态创建方法链.到现在为止我有这个功能:

def create_filtered_attribute(attribute_name)
          alias_attribute "#{attribute_name}_without_filter", attribute_name

          define_method "#{attribute_name}" do
            filter_words(self.send("#{attribute_name}_without_filter"))
          end
end
Run Code Online (Sandbox Code Playgroud)

所以我收到一个带有属性名称的字符串,别名为' _without_filter '(alias_method或alias_method_chain在这里失败,因为在创建类时属性不存在),我创建了一个带有属性名称的新方法,我在其中过滤了内容.

但不知何故,当我调用"#{attribute_name} _without_filter"时,它调用我的新方法(我认为因为alias_attribute有些如何),程序进入堆栈循环.

我试图重命名该属性,所以我可以使用它的名称作为方法...

有人可以请教我这个.

ruby-on-rails alias-method-chain alias-method

2
推荐指数
1
解决办法
3513
查看次数

OO-Perl别名类属性

我有一个我正在研究的模块.我正在设置一些这样的属性:

$self->{FOO};
$self->{BAR};
$self->{FOOBAR};
Run Code Online (Sandbox Code Playgroud)

而且,我想使用AUTOLOAD来帮助创建访问这些属性的方法.例如,$foo->Bar()返回值$self->{BAR}.没问题.一切都是标准的.

现在,我想创建别名方法.例如,如果有人说$obj->Fu();,我会回来$self->{FOO}.我想做的是创建一个$self->{FU}指向相同内存位置的内容$self->{FOO}.这样,当我设置值时$self->{FOO},$self-{FU}也会设置.这样,我不必对AUTOLOAD的工作方式进行各种更改,也不必在设置$self->{FU}时记住设置$self->{FOO}.

这样做有简单的方法吗?

perl alias-method

2
推荐指数
1
解决办法
950
查看次数

类`ActionView :: Base'的未定义方法`render'

当我启动应用程序崩溃后出现错误

/home/stereodenis/.rvm/gems/ruby-1.9.3-p194@nyanya/gems/haml-3.1.6/lib/haml/helpers/action_view_mods.rb:15:in `alias_method': undefined method `render' for class `ActionView::Base' (NameError)
Run Code Online (Sandbox Code Playgroud)

可能有什么不对?

完整跟踪https://gist.github.com/5e3244d488068c9d0ba7

haml ruby-on-rails render actionview alias-method

2
推荐指数
1
解决办法
2811
查看次数

是否可以别名to_s?

to_s我不想覆盖我的模型,而是将其别名为现有的方法full_name.

双方aliasalias_method似乎并不如预期的工作.

运用 alias

class Person < ActiveRecord::Base

  # ... other model code.

  alias to_s full_name

  def full_name
     "#{first_name} #{last_name}"
  end
end

# In Terminal
> Person.last.to_s  #=> "#<Person:0x007fa5f8a81b50>"
Run Code Online (Sandbox Code Playgroud)

运用 alias_method

class Person < ActiveRecord::Base

  # ... other model code.

  alias_method :to_s, :full_name

  def full_name
     "#{first_name} #{last_name}"
  end
end

# In Terminal
> Person.last.to_s  #=> "#<Person:0x007fa5f8a81b50>"
Run Code Online (Sandbox Code Playgroud)

ruby alias ruby-on-rails alias-method

2
推荐指数
1
解决办法
386
查看次数

我什么时候应该使用别名方法?- 红宝石

我浏览了一下,没有看到答案:

您会使用别名方法做什么?

class Vampire
 attr_reader :name, :thirsty

 alias_method :thirsty?, :thirsty
end
Run Code Online (Sandbox Code Playgroud)

我使用问号的唯一原因是能够在我定义的任何方法中使用问号吗?我相信您不能对实例变量使用问号。

ruby alias-method

1
推荐指数
1
解决办法
956
查看次数