我想創建一個提交按鈕,它將調用一個ruby腳本並執行它(腳本需要一個isbn並且ping一個第三方網站並根據輸入返回信息)。具體來說,我有一個用於創建新書的表單,我需要的用戶主要是isbn。提交後,我想採用這個isbn並運行我的ruby腳本來檢索數據並在下一頁顯示。我已經嘗試將.rb代碼轉換爲幫助程序方法,但我不確定是否正確執行此操作,但我不知道如何更改提交按鈕的功能以執行方法或腳本 這是我的輔助方法有一個提交按鈕使用表單中的字段運行.rb文件(ruby on rails)
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,
'[email protected]' => '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
我使用的標準形式,型號,和控制器,用於一書(其具有ISBN)從軌道生成生成支架書ISBN:字符串條件:串標題:string ...
有沒有理由不在控制器中處理請求? –
我不確定如何做到這一點是問題。我不知道我在哪裏/如何將此代碼調整到當前項目中 – CimmerianMuse
也許您可以使用after_create調用來聯繫eBay,獲取有關該書的信息,然後更新數據庫中的Book條目。這意味着您創建書籍後可能不會看到更改。 – MrYoshiji