我有一个User模型和一个Book模型。一本书属于一个用户,一个用户有很多书。
在视图中,我通过
显示用户在用户节目视图中创建的所有书籍<% @user.books.each do |book| %>
<%= book.id %>
<%= book.title %>
<% end %>
但是book.id
的数字对于数据库中的所有书籍都是唯一的,而不仅仅是每个用户。我希望这个id对用户来说是唯一的,所以如果数据库中有1000本书,而用户只有3本书,它会将ID显示为1,2和3(而不是像476,239,105,等)。
如何做到这一点?
答案 0 :(得分:1)
你可以做几件事...最快的方法是在循环之前加入一个计数器并增加它...如果你只需要每本书的唯一数字......
如果您确实需要ID,可以在书籍表中添加单独的字段,并通过在模型中计算ID来处理ID号...
另一种方法是添加另一个类似user_books的模型,并构建一个包含计数器字段的多个关联,请查看http://guides.rubyonrails.org/association_basics.html#polymorphic-associations
希望它有所帮助。
答案 1 :(得分:0)
好吧,如果只是为了显示目的,为什么不添加这样的计数器:
<% count = 1 %>
<% @user.books.each do |book| %>
<%= count %>
<% count += 1 %>
<%= book.title %>
<% end %>
因此,不是book.id,而是&lt;%= count%&gt;
如果你想翻转它并从最新的开始,那么这将起作用:
<% count = @user.books.length %>
<% @user.books.each do |book| %>
<%= count %>
<% count -= 1 %>
<%= book.title %>
<% end %>