2012-12-28 63 views
1

我有用戶模型和書籍模型。一本書屬於一個用戶,一個用戶有很多書。Rails - 每個模型的唯一標識,不是整個數據庫

在視圖中,我展示做

<% @user.books.each do |book| %> 
    <%= book.id %> 
    <%= book.title %> 
<% end %> 

book.id用戶已經在用戶放映視圖中創建的所有書都有一個編號,是獨一無二的所有的書在數據庫中,不只是每個用戶。我希望此ID對用戶是唯一的,因此如果數據庫中有1000本書,並且用戶只有3本書,它將顯示ID爲1,2和3(而不是像476,239,105,等等。)。

這怎麼辦?

回答

0

好吧,如果它只是用於顯示目的,爲什麼不添加計數器,像這樣:

<% count = 1 %> 
<% @user.books.each do |book| %> 
    <%= count %> 
    <% count += 1 %>  
    <%= book.title %> 
<% end %> 

所以不是book.id,你就必須<%=計數%>

如果你想翻轉它,並從最新開始,那麼這將工作:

<% count = @user.books.length %> 
<% @user.books.each do |book| %> 
    <%= count %> 
    <% count -= 1 %>  
    <%= book.title %> 
<% end %> 
+0

非常感謝!它主要用於顯示目的,所以這個工作。但現在我添加了'''<%@ user.books.order(「created_at DESC」)。 %>'''以便最新的代碼位於頂部,並希望編號也可以翻轉。這種方法可能嗎? –

+0

沒問題...只是更新了這種情況的答案 – sq1020

+0

你真棒。謝謝! –

1

你可以做幾件事情......以最快的方式是包括環前一個計數器,並增加它......如果你只需要每本書的唯一號碼...

如果你真的需要你的IDS可以添加一個單獨的字段到您的書籍表中,並通過在您的模型中計算它們來處理ID號碼...

另一種方法是添加另一個模型,如user_books並構建一個具有很多通過關聯包括計數器字段, out http://guides.rubyonrails.org/association_basics.html#polymorphic-associations

希望它有幫助。

+0

我想我會創建一個新的模型只作爲最後的手段。只是試圖很快做到這一點,它主要用於顯示目的。謝謝! –

相關問題