[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 03/15 20:02 / Filesize : 225 KB / Number-of Response : 939
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【Agile】Ruby on rails相談所 part2【DRY】



419 名前:nobodyさん mailto:sage [2006/09/14(木) 11:34:08 ID:???]
ActiveRecordで、主キーにid以外のカラムを使いたい場合、set_primary_keyでカラム名を指定すればいいはずですが、なんかエラーになります。
試しに次のようなテーブルを作り、
create table accounts (
 code integer not null primary key,
 name varchar(30) not null,
 password varchar(30) not null
);
そしてruby script/generate scaffold accountを実行し、app/models/account.rbにset_primary_keyを追加しました。
class Account < ActiveRecord::Base
 set_primary_key 'code' # 追加
end
そのあと localhost:3000/users/ にブラウザでアクセスすると、/list はうまく表示されるのですが、/new だと次のようなエラーがでます。
undefined method `code_before_type_cast' for #<Account:0x22ebadc>
/usr/local/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/base.rb:1789:in `method_missing'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/helpers/form_helper.rb:340:in `value_before_type_cast'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/helpers/form_helper.rb:253:in `to_input_field_tag'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/helpers/form_helper.rb:160:in `text_field'
#{RAILS_ROOT}/app/views/users/_form.rhtml:5:in `_run_rhtml_users__form'
#{RAILS_ROOT}/app/views/users/new.rhtml:4:in `_run_rhtml_users_new'
なんか「code_before_type_castというメソッドがない」というエラーなので、モデルに
def code_before_type_cast; code; end
を追加したらエラーはでなくなったんですけど、あまり正しい解決法には見えないので、詳しい人のアドバイスお願いします。







[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<225KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef