ActiveDecorator::Decorator.instance.decorateのメモ
ActiveDecoratorを使用した時にはまったところ。
module OrderDecorator
def notice
"注意事項 #{self.order_name}"
end
end
viewの中で、order.noticeで呼び出したら呼び出せなかった。
<%= order.notice %>
以下の書き方だとOKだった。なんでだろうか。
viewで使用したのに。
319ring.netとかと何か関係あるのだろうか?
<%= ActiveDecorator::Decorator.instance.decorate(order).notice %>
参考サイト qiita.com
JavaScript勉強メモ - constructorについてのメモ
> function ClassA(){};
> var a = new ClassA();
> console.log(a.constructor);
[Function: ClassA]
> console.log(ClassA.prototype.constructor);
[Function: ClassA]
> Object.getOwnPropertyNames(ClassA.prototype);
[ 'constructor' ]
// ClassAのprototypeを書き換える
> ClassA.prototype = {
... foo: function(){console.log('foo');
..... }
... }
{ foo: [Function: foo] }
// ClassAのprototypeを書き換えたあとは、ClassAのprototypeからconstructorが消えて
'foo'のみになった。
> Object.getOwnPropertyNames(ClassA.prototype);
[ 'foo' ]
// in演算子を使うとプロトタイプまで遡ってプロパティがあるか確認する
> console.log('constructor' in a);
true
// hasOwnProperty(key)では、プロトタイプまで参照しない
// インスタンスも、インスタンスの元となるClassAにconstructorは存在しない。
> console.log(a.hasOwnProperty('constructor'));
false
> ClassA.hasOwnProperty('constructor');
false
> Object.hasOwnProperty('constructor');
false
// Objectのprototypeにconstructorがあることを発見
> Object.prototype.hasOwnProperty('constructor');
true