rails:2881
From: 久野@サイベイト <hisano@s...>
Date: Tue, 21 Oct 2008 18:39:31 +0900
Subject: [rails:2881] ActiveRecord2.1にて、メソッド内からDBデータを呼び出せない
久野と申します。
最近、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/
-> 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... ]