2015-08-27 31 views
0

我正在爲我的代碼的ajax部分努力工作。如何創建一個新的條目或刪除一個很清楚(感謝codechool),但在我的情況下,沒有提交表單。單擊單選按鈕上的Rails Ajax加載記錄值

我想要的 - 如果有人單擊顯示閃存驅動器容量的單選按鈕(1 GB,2 GB,4 GB),我想顯示當前閃存驅動器容量的價格。

我的記錄情況如下: 產品 - 包括通用數據 選項 - 包括價格&量

這是我show.html.haml部分:

.col-sm-6 
    .box 
    %form 
     .sizes 
     %h3 Available sizes (Gbyte) 
     [email protected] do |volume| 
      -volume.each do |item| 
      %label{:for => "size_#{item.id}"} 
      %a{:href => "#", class: 'size_input'} 
       =sprintf('%.0f', item.value/1000.to_f) 
       GByte 
      %input#size_s.size-input{:name => "volume", :type => "radio", :value => item.id} 
     %p.price#priceValue 
     =(@getCurrency[0].to_f).ceil 
     USD 

這是我的產品.coffee:

jQuery -> 
    $('.size_input').on 'click', (event) -> 
     selected_value = $('input[name=volume]:checked').val() 
     $.ajax -> 
      type: "GET" 
      dataType: "json" 
      url: "/products" 
      success: (json) -> 
       $('#priceValue').text(json.price) 

我知道url在我的ajax調用中是完全錯誤的,但是我的搜索工作迄今尚未取得任何成果。 從邏輯上說,我需要將URL傳遞給我的產品ID並檢索與「selected_value」匹配的選項,但我該怎麼做?

回答

0

您需要將產品ID傳遞給/ products以獲得特定產品。

url: '/products/' + selected_value 

selected_value應該是產品的id。

在控制器,你將需要使用

product = Product.find(params[:id]) 

,並返回它作爲一個JSON對象。

render json: product 
+0

我可能不夠具體 - 我的價格存儲在選項記錄中。 「selected_value」是值,我需要使用該選項,而不是產品。 我想我需要調用這樣的東西:products/135/options/1 然後檢索該記錄的「價格」。 – mohnstrudel

+0

這是我到目前爲止: '$('。size_input')。click(event) - > selected_value = $('input [name = volume]:checked')。val() #執行console.log(URL) $阿賈克斯 - > 類型: '得到' 數據類型: 'JSON' 網址: '/產品/' 數據:{產品:{選項:{尺寸:SELECTED_VALUE}}} 成功:(json) - > msg: 沒有路由匹配[GET]「/ products /功能%20(%)20%7B%20%20%20%20%20%20%20%20返回%20%7B%2 ...和所以 – mohnstrudel

+0

添加一條路由到您的routes.rb文件:get'product /:pid/option /:oid'=>「products#option」或資源路由。 – dinomix