0

让我解释一下场景..!! 我已经使用设计进行身份验证。数据库中的设计表被命名为“用户”。现在我有另一个名为“book”的表,用于存储用户 ID。

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 存储在书表中,以便我无法显示该用户可以使用这本书。但是在书页上只显示用户 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

它存储了用户的完整信息,例如他/她的姓名、地址、电话号码。我在书和用户之间建立的关系是对多的,对用户与 s_user 的关系是一对一的。所以我不知道如何显示存储在 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%> 

现在在所有者详细信息下,我想显示用户详细信息。我没有得到如何显示?

4

1 回答 1

0

看到这种关系

如果你给关系belongs_tohas_many

例如

class User < ActiveRecord::Base
  has_many :books
end

class Book < ActiveRecord::Base
  belongs_to :user
end

现在您可以通过使用@user.books获取该特定用户的所有书籍来访问

用于创建您可以使用的书籍

@user.books.build

这样在您的书籍表中 user_id 会自动出现

您还可以从书中获取用户详细信息,例如

@user = @book.user
于 2012-10-23T11:01:21.243 回答