Javascript 单击单选按钮时Rails Ajax加载记录值
我正在努力解决代码中的ajax部分。感谢codeschool,如何创建新条目或删除条目是非常清楚的,但是在我的情况下,表单上没有提交 我想要的-如果有人单击显示闪存驱动器容量的单选按钮1 gbyte、2 gbyte、4 gbyte,我想显示当前闪存驱动器大小的价格 我的记录结构如下: 产品-包含一般数据 选项-包含价格和数量 这是我的show.html.haml的一部分:Javascript 单击单选按钮时Rails Ajax加载记录值,javascript,jquery,ruby-on-rails,ajax,Javascript,Jquery,Ruby On Rails,Ajax,我正在努力解决代码中的ajax部分。感谢codeschool,如何创建新条目或删除条目是非常清楚的,但是在我的情况下,表单上没有提交 我想要的-如果有人单击显示闪存驱动器容量的单选按钮1 gbyte、2 gbyte、4 gbyte,我想显示当前闪存驱动器大小的价格 我的记录结构如下: 产品-包含一般数据 选项-包含价格和数量 这是我的show.html.haml的一部分: .col-sm-6 .box %form .sizes %h3 Available
.col-sm-6
.box
%form
.sizes
%h3 Available sizes (Gbyte)
-@volumes.each 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
这是我的产品。咖啡:
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)
我知道在我的ajax调用中url是完全错误的,但是我的搜索工作到目前为止还没有产生任何结果。
从逻辑上讲,我需要将我的产品id传递到url并检索与所选\u值匹配的选项,但我如何做到这一点?您需要将产品id传递到/products才能取回特定的产品
url: '/products/' + selected_value
所选值应为产品的id
在控制器中,您需要使用
product = Product.find(params[:id])
并将其作为json对象返回
render json: product
我可能不够具体——我的价格存储在期权记录中。selected_value是我需要用于选项而不是产品的值。我想我需要调用这样的东西:products/135/options/1,然后检索该记录的价格。这是我到目前为止得到的:$'.size\u input'。单击事件->所选的\u值=$'输入[name=volume]:选中'.val console.logurl$.ajax->type:'get'数据类型:'json'url:'/products/'数据:{product:{option:{size:selected_value}}成功:json->console.logjson$'priceValue'。textjson.price仍然收到一些奇怪的错误消息:没有与[GET]/products/function%20%20%7B%20%20%20%20%20%20%20%20%20%20%20返回%20%7B%2匹配的路由。。。然后将路由添加到routes.rb文件:get'product/:pid/option/:oid'=>productsoption或资源路由。