1

Rubyスクリプトを呼び出して実行する送信ボタンを作成しようとしています(スクリプトはisbnを受け取り、サードパーティのサイトにpingを送信し、入力に基づいて情報を返します)。具体的には、新しい本を作成するためのフォームがあり、ユーザーから必要な主なフィールドは isbn です。送信時に、その isbn を取得し、Ruby スクリプトを実行してデータを取得し、次のページに表示したいと思います。.rb コードをヘルパー メソッドに転送しようとしましたが、それが正しいかどうかわかりません。また、送信ボタンの機能を変更してメソッドを実行する方法もわかりません。またはスクリプトこれは私のヘルパーメソッドです

module PagesHelper
require 'httpclient'
require 'nokogiri'
def search(hash)

#class SearchBook

#def initialize(isbn)
# @isbn = isbn
#end  


#puts "Enter ISBN: "
#isbn = gets.chomp
#def run
isbn = hash

conditions = ['Acceptable', 'BrandNew', 'Good', 'LikeNew', 'VeryGood']
client = HTTPClient.new
uri = 'https://svcs.ebay.com/services/half/HalfFindingService/v1?OPERATION-    NAME=findHalfItems&REST-PAYLOAD'

count=0
conditions.each do |condition|

query = {
        'X-EBAY-SOA-SERVICE-NAME' => 'HalfFindingService',
        'SERVICE-VERSION' => '1.0.0',
        'GLOBAL-ID' => 'EBAY-US',
        'X-EBAY-SOA-SECURITY-APPNAME' => 'Compassi-3b25-406b-b3d6-d69ca7353053',
        'RESPONSE-DATA-FORMAT' => 'XML',
        'productID' => isbn,
        'productID.@type' => 'ISBN',
        'itemFilter' => 'Condition',
        'itemFilter.name' => 'Condition',
        'itemFilter.value' => condition,
        'paginationInput.entriesPerPage' => '3',
        'sortBy' => 'FixedPrice',
        'sortBy.sortOn' => 'FixedPrice',
        'sortBy.sortOrder' => 'INCREASING'
        }

  results = client.get_content(uri, query)
  count += 1
  doc = Nokogiri::XML.parse(results)

  if count <= 1
    puts "Book Details"
    puts "--Title: "+doc.css("title").text
    puts "--Author: "+doc.css("nameValueList/value").text
    puts "Prices by Condition:"
  end

  puts "Condition: #{condition}"
  prices = doc.css("price")
  prices.each do |price|
    puts "$#{price.text}"
  end

end

#return count

#end

#end

end
end

Rails generate scaffold Book isbn:string condition:string title:string... から生成された Book (isbn を持つ) の標準フォーム、モデル、コントローラーを使用しています。

4

2 に答える 2