2012-10-23 82 views
0

讓我解釋一下這個場景.. !! 我已經使用設計進行身份驗證。在數據庫中設計表被命名爲「用戶」。現在我有另一個名爲「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 

我將userid存儲在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 

存儲喜歡他/她的姓名,地址,電話用戶的完整信息,沒有另一個表。 我與書和用戶之間的關係是對許多和一對一的用戶對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%> 

現在下業主的細節,我想顯示用戶細節的意見。我沒有得到如何顯示?

回答

0

看到這個relatinship

如果你給關係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 
+0

我覺得你沒有得到實際的場景。實際上,當用戶(店主)登錄時,用戶的ID會自動保存到書桌上,同時添加一本新書(我已提供店主添加,刪除,編輯特權到他的書籍記錄)。我的問題是,如何通過此user_id(它保存在書本表n中,由devise創建)檢索用戶詳細信息(即SUser表數據)。 –

+0

我也想提醒你,設計的桌子是不同的,店主的桌子是不同的。這兩張表之間也有一對一的關係。和表和用戶表(設計)之間的多對多關係。 –

+0

我想這樣做 'v = Book.user_id' 'a = SUser.find_by_user_id(v)' 'b = a.address' –

相關問題