Scaffoldでリレーション rails 

Scaffoldを利用して1対多関係テーブルの実装。

すごく参考になったのはこのサイト
http://rubyonrails.wiki.fc2.com/wiki/%E3%83%AA%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%95%E3%82%8C%E3%81%9F%E8%A1%A8%E5%8F%8A%E3%81%B3CRUD%E3%81%AE%E4%BD%9C%E6%88%90

「ある部屋にどのユーザがいるのか」という関係性。

まず

userテーブルを作成
rails g scaffold userkanri username:string mail:string

roomテーブルを作成
rails g scaffold room roomname:string user_id:integer

そして上記のurlの通りに

部屋はユーザを「複数所有する」ので
app/models/room.rb
を編集
has_many :users
を追加
*たくさん持つですよ
*複数形にする!!

次に、
ユーザはどの部屋に「属しているか」ということで
app/models/user.rb
を編集
belongs_to :room
を追加
*属す!!そのまま!!
*belongs_toの細かい説明はこちら
「参照元テーブルから参照先テーブルにアクセスする」
http://railsdoc.com/references/belongs_to

そして
app/controllers/rooms_controller.rb


@users = User.all
を追加。

また、hamlの場合は
index.html.hamlをこんな感じで編集。

%h1 Listing rooms
%table
%tr
%th Roomname
%th User
%th
%th
%th

- @rooms.each do |room|
%tr
%td= room.roomname
%td= room.user_id
%td= @users[room.user_id-1].username
%td= link_to 'Show', room
%td= link_to 'Edit', edit_room_path(room)
%td= link_to 'Destroy', room, :method => :delete, :data => { :confirm => 'Are you sure?' }

%br

= link_to 'New Room', new_room_path

そして、サーバを起動させて
http://localhost:3000/rooms
へgo!!