1

내 시스템에서는 사용자가 한 권의 책 한 페이지 만 작성하도록합니다. 이미 존재하는 페이지가있는 경우 페이지에 대한 링크를 표시하고 싶습니다. 기존 페이지가 없으면 "CREATE BUTTON"을 표시하고 싶습니다.ASIN (Amazon 코드)로 정렬

나는이 시스템을 "ISBN이있는 책"에 대해 실현할 수있었습니다. 그러나 모든 Kindle 책에는 ISBN이 없습니다. 그래서, 나는 붙어있어.

나는 한개의 책 페이지를 만들었습니다. 링크가 맞습니다. 그러나 다른 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> 
관련 문제