rails:2883
From: 久野@サイベイト <hisano@s...>
Date: Tue, 21 Oct 2008 19:21:21 +0900
Subject: [rails:2883] Re: ActiveRecord2.1にて、メソッド内からDBデータを呼び出せない【解決】
回答ありがとうございます。 "#{self.foo}#{self.bar}"とすることで エラーが出なくなりました。 Andy Matsubara さんは書きました: > 回避策としては > "#{foo}#{bar}" > を > "#{self.foo}#{self.bar}" > とすればいいのではないかと思います。 > 自分は癖で,いつもselfを付けて書いていたので > 仕様が変わったのかどうかそのあたりは気付きませんでした。 > > Andy > > 2008/10/21 18:39 久野@サイベイト <hisano@s...>: >> 久野と申します。 >> >> 最近、railsのバージョンを1.2系から2.1系にアップしたのですが、 >> テーブルの属性値にクラスの内部からアクセスしようとすると、 >> 以下のようなエラーが出るようになりました。 >> >> >> ■環境 >> rails 2.1.1 >> activerecord 2.1.1 >> mysql 2.7 >> >> >> ■DB >> projects(id integer, foo string, bar string) >> >> >> ■class定義 >> class Project << ActiveRecord::Base >> def foobar >> "#{foo}#{bar}" >> end >> end >> >> ■実行内容 >> $ ruby script/console >> Loading development environment. >>>> prj = Project.find(1) >> => #<Project:0x7f545be4 @attributes={"id"=>"1", "foo"=>"foo","bar"=>""}> >> >>>> prj.bar >> => "" >> >> 外部からの呼び出しは問題なし >> >> >>>> prj.foobar >> NameError: undefined local variable or method `bar' for >> #<Project:0xb78ba530> >> from >> /usr/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/attribute_methods.rb:256:in >> `method_missing' >> from /home/***/***/app/models/project.rb:**:in `foobar' >> from (irb):2 >> !!属性値barをメソッド内から呼び出すと上記のエラーが出る。 >> >> >> どなたか原因や回避策などご存知でしたらご教授お願いします。 >> なお、関係ないと思われる部分は削除してあります。 >> >> -- >> 久野 孝泰 >> hisano@s... >> >> >> >> -- >> ML: rails@r... >> 使い方: http://QuickML.com/ >> > > -- > ML: rails@r... > 使い方: http://QuickML.com/ > -- Hope the innovation in the sign-trading relations. サイベイト株式会社 企画部マネジャー 久野 孝泰 hisano@s... http://www.signovate.co.jp/ -- ML: rails@r... 使い方: http://QuickML.com/
2881 2008-10-21 11:39 [hisano@s... ] ActiveRecord2.1にて、メソッド内からDBデータを呼び出せない 2882 2008-10-21 11:58 ┣[andymatsubara@g... ] -> 2883 2008-10-21 12:21 ┃┗[hisano@s... ] Re: ActiveRecord2.1にて、メソッド内からDBデータを呼び出せない【解決】 2884 2008-10-21 12:39 ┗[sakuro@2... ] 2885 2008-10-21 14:24 ┗[hisano@s... ]