2012年10月9日火曜日

Railsでid以外のカラムを主キーにしてみたよ

( ̄(エ) ̄)彡☆

新規プロジェクトをRailsで作るなら設定より規約にしたがっていけば良いのですが…

既存データのテーブル構造を使う場合は主キーがidとは限らない (。・x・)ゝ

というか、まずないwww

そんな時はModelにset_primary_key [:column]を追加してあげると幸せになれる

例えば
Areasテーブル
attr_accessible :area_id, :name
has_many :customers

+ set_primary_key :area_id
attr_accessible :area_id, :name
has_many :customers

Customersテーブル
attr_accessible :area_id, :name
belongs_to :area

Customer_index_view
<% @customers.each do |customer| %>
    <%= customer.name %>

    <%= customer.area_id %>

    <%= customer.area.name %> ← 今まで通りに使えるヘ(^o^)ノ

    <%= link_to 'Show', customer %>

    <%= link_to 'Edit', edit_customer_path(customer) %>

    <%= link_to 'Destroy', customer, method: :delete, data: { confirm: 'Are you sure?' } %>
<% end %>

Railsには複数キーを設定できないので、composite_primary_keysっていうgemを使うといいよ

GitHub→composite_primary_keys

0 件のコメント:

コメントを投稿