在表格行中只显示一个链接

时间:2013-12-06 02:19:38

标签: ruby-on-rails ruby-on-rails-3

我想在表行中只显示一个链接,即使有多个组(@existing_groups_ids)也是如此。但现在,当有两个组时,我的系统在表行中显示两个链接。当有三个组时,它可能在表行中有三个链接。你能告诉我如何修改我的代码吗?

☆index_controller

def index
@keyword = params[:keyword]
 if @keyword.present?
   Amazon::Ecs.debug = true
   res = Amazon::Ecs.item_search(params[:keyword], 
      :search_index => 'All', :response_group => 'Medium')
   @items = res.items
  search_isbns = @items.map{ |isbns| isbns.get('ItemAttributes/ISBN')}
  @existing_groups_isbns = Group.select(:isbn).where(:isbn => search_isbns).map(&:isbn)
  @existing_groups_ids = Group.where(:isbn => search_isbns).map{|g| g.id}
 end
end

☆index.html.erb(index_controller)

<table class="table">
  <tr>
   <th>image</th>
   <th>タイトル</th>
   <th>著者</th>
   <th>出版年</th>
   <th>出版社</th>
   <th>page</th>
   <th>リンク</th>
 </tr>
<% if @items.present? %>
 <% @items.each do |i| %>
   <tr>
     <td> <%= link_to image_tag(i.get('SmallImage/URL'), {:style => 'border: none;'}), i.get('DetailPageURL') %></td>
  <td> <%= link_to i.get('ItemAttributes/Title'), i.get('DetailPageURL') %></td>
  <td> <%= i.get('ItemAttributes/Author') %></td>
  <td> <%= i.get('ItemAttributes/PublicationDate')%></td>
  <td> <%= i.get('ItemAttributes/Publisher') %></td>
  <td> <%= i.get('ItemAttributes/NumberOfPages')%></td>
  <td>
    <% if @existing_groups_isbns.include? i.get('ItemAttributes/ISBN') %>
        <% @existing_groups_ids.each do |id| %>
          <%= link_to '既存グループへ', group_path(id) %>
        <% end %>
    <% else %>
     <%= link_to '新規作成', {:controller => 'groups', :action => 'new', :name => i.get('ItemAttributes/Title'),:author => i.get('ItemAttributes/Author'), :publish => i.get('ItemAttributes/Publisher'), :published => i.get('ItemAttributes/PublicationDate'), :isbn => i.get('ItemAttributes/ISBN'), :page => i.get('ItemAttributes/NumberOfPages'), :imageurl=>i.get('MediumImage/URL')} ,class: "btn btn-midium btn-primary"%>
    <% end %> <!-- if @existing_groups_isbns-->     
  </td>
</tr>
 <% end %><!-- each do-->
<% else %>
  見つかりませんでした。
<% end %> 

1 个答案:

答案 0 :(得分:0)

替换:

<% @items.each do |i| %>

<% @existing_groups_ids.each do |id| %>
  <%= link_to '既存グループへ', group_path(id) %>
<% end %>

使用:

<% @items.each_with_index do |i, index| %>

<%= link_to '既存グループへ', group_path(@existing_groups_ids[index]) %>