1

在我的系统中,我希望用户只为一本书创建一个页面。当已有的页面已经存在时,我想显示该页面的链接。当没有现有页面时,我想显示“CREATE BUTTON”。按照ASIN排序(Amazon code)

我成功地实现了这个系统关于“有书的书”。但是,所有的Kindle书都没有ISBN。所以,我卡住了。

我创建了一本kindle-book页面。它的链接是正确的。但其他kindle书籍的链接也会自动成为第一个创建链接的链接。

我写下面的代码。 “ASIN”排序功能可能有问题。你能告诉我如何解决这个问题吗?

☆index.html.erb(index_controller)

<% if @items.present? %> 
     <% @items.each do |i| %> 
     <% i_attr = i.get_element('ItemAttributes') %> 
     <tr> 
      <td> <%= link_to image_tag(i.get('SmallImage/URL'), {:style => 'border: none;'}), i.get('DetailPageURL') %></td> 
      <td> <%= link_to i_attr.get('Title'), i.get('DetailPageURL') %></td> 
      <td> <%= i_attr.get('Author') %></td> 
      <td> <%= i_attr.get('PublicationDate')%></td> 
      <td> <%= i_attr.get('Publisher') %></td> 
      <td> <%= i_attr.get('NumberOfPages')%></td> 
      <td > 
       <% if i_attr.get("ISBN") %> 
        <%= i_attr.get('ISBN') %> 
       <% elsif i.get("ASIN") %> 
        <%= i.get("ASIN") %> 
       <% end %> 
      </td> 
      <td> 
       <% if @existing_groups_isbns.include? i_attr.get('ISBN') %> 
       <% @existing_groups_isbns.each do |isbn| %> 
        <% if isbn == i_attr.get('ISBN') %> 
         <% @group_i = Group.where(:isbn =>isbn).first %> 
         <%= link_to '既存ページへ' , group_path(@group_i) %> 
        <% end %><!--if == --> 
       <% end %><!--isbn--> 
       <% elsif @existing_groups_asins.include? i.get("ASIN") %> 
       <% @existing_groups_asins.each do |asin| %> 
       <% if asin == i.get("ASIN") %> 
        <% @group_a = Group.where(:asin =>asin).first %> 
        <% link_to '既存ページへ', group_path(@group_a) %> 
        <% end %><!--if== --> 
       <% end %><!-- asin--> 
       <% else %><!-- if includes?==--> 
        <%= 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'), :asin => i.get('ASIN'), :page => i.get('ItemAttributes/NumberOfPages'), :imageurl=>i.get('MediumImage/URL')} ,class: "btn btn-midium btn-primary"%> 
      <% end %><!--if includes?--> 
      </td> 
     </tr> 
    <% end %><!-- @items.each do--> 
<% else %><!--if @items.present?--> 

☆index_controller

class IndexController < ApplicationController 
    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')} 
    search_asins = @items.map{ |asins| asins.get('ASIN')} 
    @existing_groups_isbns = Group.select(:isbn).where(:isbn => search_isbns).map(&:isbn) 
    @existing_groups_asins = Group.select(:asin).where(:asin => search_asins).map(&:asin) 

    end 
    end 

回答

0

我设法处理这个问题。感谢您的关注。

<td> 
      <% if i_attr.get('ISBN') %> 
       <% if @existing_groups_isbns.include? i_attr.get('ISBN') %> 
       <% @existing_groups_isbns.each do |isbn| %> 
        <% if isbn == i_attr.get('ISBN') %> 
         <% @group_i = Group.where(:isbn =>isbn).first %> 
         <%= link_to '既存ページへ' , group_path(@group_i) %> 
        <% end %><!--if == --> 
       <% end %><!--isbn-->  
       <% else %><!-- if includes?==--> 
        <%= 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'), :asin => i.get('ASIN'), :page => i.get('ItemAttributes/NumberOfPages'), :imageurl=>i.get('MediumImage/URL')} ,class: "btn btn-midium btn-primary"%> 
      <% end %><!--if includes?--> 
      <% else %> 
      <% if @existing_groups_asins.include? i.get('ASIN') %> 
       <% @existing_groups_asins.each do |asin| %> 
        <% if asin == i.get("ASIN") %> 
         <% @group = Group.where(:asin =>asin).first %> 
         <%= link_to '既存ページへ' , group_path(@group) %> 
        <% end %><!--if == --> 
       <% end %><!--asin--> 
       <% else %><!-- if includes?==--> 
        <%= 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'), :asin => i.get('ASIN'), :page => i.get('ItemAttributes/NumberOfPages'), :imageurl=>i.get('MediumImage/URL')} ,class: "btn btn-midium btn-primary"%> 
      <% end %><!--if includes?--> 
      <% end %> 
      </td>