シナリオを説明させてください..!! 私は認証にdeviseを使用しました。データベース内の Devise テーブルは「user」と名付けられています。これで、ユーザー ID を格納する「book」という名前の別のテーブルができました。
class CreateBooks < ActiveRecord::Migration
def change
create_table :books do |t|
t.integer "user_id", :limit =>5
t.string "book_name", :limit => 50
t.integer "edition", :limit => 5
t.string "author", :limit => 30
t.string "branch", :limit => 30
t.string "publisher", :limit => 50
t.integer "year", :limit => 10
t.text "details"
t.timestamps
end
add_index :books, "user_id"
end
end
このユーザーがこの本を利用できることを表示できないように、ユーザー ID を book テーブルに保存します。しかし、本のページにユーザー ID だけを表示しても意味がないので、s_user という名前の別のテーブルを作成しました。
class CreateSUsers < ActiveRecord::Migration
def change
create_table :s_users do |t|
t.integer "user_id", :limit => 5
t.string "fullname", :limit => 25
t.string "email", :default => "", :null => false
t.string "hashed_password", :limit => 40
t.string "salt", :limit => 40
t.string "address",:limit => 25
t.text "details"
t.timestamps
end
add_index :s_users, "user_id"
end
end
名前、住所、電話番号など、ユーザーの完全な情報を保存します。私が本とユーザーの間に作った関係は、多くの人にとってはマントであり、ユーザーとユーザーにとっては 1 対 1 です。そのため、s_user テーブルに格納されているユーザーの情報を表示する方法がわかりません。私がここに書いていること: コントローラーで
@books = Book.all
ビューで
<tr>
<th>S.No</th>
<th>Book Name</th>
<th>Year </th>
<th>Owner id</th>
<th>Owner Details</th>
</tr>
</thead>
<tbody>
<% @books.each do |b| %>
<tr>
<td><%= b.id%></td>
<td><%= b.book_name%></td>
<td><%= b.year%></td>
<td><%= b.user_id%></td>
</tr>
<%end%>
所有者の詳細の下に、ユーザーの詳細を表示したいと思います。表示方法がわかりませんか?