@から始まるインスタンス変数はビュー内で自由に使えるようになる。以下はその例。
アプリケーションのルートディレクトリに下記ファイルを配置。
example_user.rbRailsコンソールで以下を実行した。
class User
attr_accessor :name, :email #アトリビュートアクセサを作成するとゲッターとセッターも作成され、これによりどのビューでも利用可能となる。
def initialize(attributes = {}) #User.newで自動で呼び出されるメソッド。
@name = attributes[:name]
@email = attributes[:email]
end
def formatted_email
"#{@name} <#{@email}>"
end
end
irb(main):001:0> require './example_user'雰囲気はわかるけど、ちょっと頭に入ってこない。 そうです。わかってません。
=> true
irb(main):002:0> example = User.new
=> #<User:0x007fbc4ca30600 @name=nil, @email=nil>
irb(main):003:0> example.name
=> nil
irb(main):005:0> example.name = "Example User"
=> "Example User"
irb(main):006:0> example.email = "user@example.com"
=> "user@example.com"
irb(main):007:0> example.formatted_email
=> "Example User <user@example.com>"
ちなみにrequireはファイルの読み込みに使い、includeは「モジュールが持ってる性質を、クラスに組み込むメソッド」とのこと。モジュールの特徴をクラスに追加するイメージのようだけど、ファイル読み込むのとどう違うんだか。
頭がついていかないので、そのうち体で覚えます。
参考:
requireとincludeとextendとmodule_function(1)
0 件のコメント:
コメントを投稿