Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击单选按钮时Rails Ajax加载记录值_Javascript_Jquery_Ruby On Rails_Ajax - Fatal编程技术网

Javascript 单击单选按钮时Rails Ajax加载记录值

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

我正在努力解决代码中的ajax部分。感谢codeschool,如何创建新条目或删除条目是非常清楚的,但是在我的情况下,表单上没有提交

我想要的-如果有人单击显示闪存驱动器容量的单选按钮1 gbyte、2 gbyte、4 gbyte,我想显示当前闪存驱动器大小的价格

我的记录结构如下: 产品-包含一般数据 选项-包含价格和数量

这是我的show.html.haml的一部分:

.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或资源路由。