首页 游戏 软件 资讯 排行榜 专题
首页
web3.0
如何实时查询并显示所选加密货币的当前价格与行情

如何实时查询并显示所选加密货币的当前价格与行情

热心网友
61
转载
2026-05-18

根据 slim select 选择的加密货币名称显示价格

适合国内用的虚拟币交易所

想在Rails应用里实现一个酷炫功能吗?当用户通过Slim Select下拉菜单选择一个加密货币时,页面能立刻、动态地显示出它的实时价格。这背后,是前端CoffeeScript与后端Rails控制器的一次默契配合。下面,我们就来拆解这个功能的完整实现路径,从监听选择事件到数据库查询,一步步用代码说话。

前端实现:CoffeeScript 和 AJAX

一切从前端开始。核心思路很简单:盯住那个Slim Select下拉框,一旦用户的选择发生变化,就立刻发个请求到后台去问价格。用CoffeeScript来写,代码既简洁又清晰:

coinWithPrices = ->
  coin = $('#investment_coin_name').val()
  $.ajax
    url : '/commons/get_prices',
    data : { coin_name: coin }
  .then (data) ->
    $('#investment_shopping_price').val(data.coin_price) # 修改这里

$(document).on "turbolinks:load", ->
  $('#investment_coin_name').on('change', coinWithPrices) # 修改这里

来,我们逐行看看这段代码在做什么:

coinWithPrices = ->:这里定义了一个函数,它就是整个动态查询的发动机。

coin = $('#investment_coin_name').val():首先,获取用户在Slim Select组件中选中的那个币种名称。

$.ajax:接下来,发起一个AJAX请求。请求的目标地址是/commons/get_pricescoin作为参数coin_name一起送过去。

.then (data) ->:当后端成功响应后,会进入这个处理环节。返回的数据data里就装着我们要的价格。

$('#investment_shopping_price').val(data.coin_price):这是关键一步!把返回的价格data.coin_price,填充到ID为investment_shopping_price的输入框里。请注意,这里的目标是更新“shopping_price”文本框,而不是读取某个元素的data属性,所以代码注释也特别提醒了这一点。

$(document).on "turbolinks:load", ->:为了确保页面在Turbolinks(一种加速页面导航的Rails技术)加载后代码也能正常运行,我们把事件绑定放在这个事件监听器里。

$('#investment_coin_name').on('change', coinWithPrices):最后,为Slim Select元素绑定change事件。一旦选项改变,立刻触发coinWithPrices函数去获取新价格。这里同样需要注意,是监听change事件,而不是直接初始化函数。

有几个细节需要你留意:

第一,确保项目里已经引入了jQuery库,因为我们的AJAX调用和事件监听都依赖它。

第二,代码中的选择器(如#investment_coin_name#investment_shopping_price)需要根据你实际HTML元素的ID进行替换。

第三,turbolinks:load事件能保证每次页面加载或通过Turbolinks切换页面后,事件绑定都能正确执行。

后端实现:Rails Controller

前端发出了请求,后端就得接住并处理。我们需要在Rails控制器里创建一个动作(Action),专门负责接收币种名称、查询数据库并返回价格。

def get_prices
  @coin_name = params[:coin_name]
  coin = Coin.find_by("name ILIKE ?", @coin_name) # 使用 Coin 模型查找

  if coin
    data = { coin_price: coin.price } # 假设 Coin 模型有 price 属性
  else
    data = { coin_price: nil } # 如果找不到,返回 nil
  end

  render json: data # 返回 JSON 数据
end

这段控制器代码的逻辑非常清晰:

def get_prices:定义了一个名为get_prices

@coin_name = params[:coin_name]:首先,从请求参数中提取前端传过来的coin_name

coin = Coin.find_by("name ILIKE ?", @coin_name):接着,使用Coin模型进行查询。这里用了ILIKE进行模糊匹配,并且忽略大小写,这样即使用户输入“Bitcoin”或“bitcoin”,都能找到记录。

if coin ... else ... end:然后是一个条件判断。如果成功找到了对应的coin记录,就构造一个哈希,把该币种的price属性值放进去。这里假设你的Coin模型确实有一个price字段来存储价格。如果没找到,则返回一个coin_pricenil的哈希。

render json: data:最后,将构造好的data哈希以JSON格式渲染并返回给前端。前端CoffeeScript代码中的data.coin_price就是从这里来的。

实现后端时,别忘了这几件事:

首先,确保你的数据库中已经存在Coin模型(或你命名的其他模型),并且该模型拥有nameprice这两个属性。

其次,模型和属性的名称可以根据你的实际项目结构灵活调整。

最后,也是至关重要的一步:打开config/routes.rb文件,添加一条路由规则,将前端的请求地址映射到这个控制器动作上。例如:get '/commons/get_prices', to: 'your_controller#get_prices'。请务必将your_controller替换成你实际放置get_prices方法的控制器名称。

总结

至此,一个完整的动态价格查询功能就搭建完成了。整个过程清晰地展示了如何将Slim Select的前端交互、CoffeeScript的AJAX异步请求与Rails后端的数据库查询无缝衔接起来。其技术核心在于前后端通过AJAX进行数据交换:前端负责触发和展示,后端负责查询和提供。当然,在应用到你的实际项目时,请根据具体情况调整代码中的选择器、模型名和路由。只要确保所有依赖(如jQuery、Slim Select库)都已就位,这套方案就能流畅运行起来。

来源:https://www.php.cn/faq/1466284.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

相关攻略

加密货币价格实时显示教程:使用Slim Select轻松查询与展示
web3.0
加密货币价格实时显示教程:使用Slim Select轻松查询与展示

在当今快速发展的Web3和DeFi领域,用户体验的流畅度至关重要。无论是构建一个NFT交易平台、一个DAO治理工具,还是一个加密货币投资组合追踪器,实现数据的实时、动态更新都是核心需求。想象一下,用户只需从一个优雅的下拉菜单中选择一个加密货币,其最新价格便瞬间呈现,这种无缝交互能极大提升应用的专业性

热心网友
05.18
腾讯狍子AI内测上线专治微信收藏夹信息杂乱难题
AI
腾讯狍子AI内测上线专治微信收藏夹信息杂乱难题

腾讯内测“狍子AI”知识库工具,用户可将微信收藏的公众号文章一键导入个人知识库,解决收藏内容检索难题。通过绑定账号并转发文章即可完成入库,操作完全在微信生态内。产品采用前端轻连接、后端重处理模式,旨在将AI能力自然融入高频使用场景,保持交互便捷。

热心网友
05.18
AI如何将材料研发周期从20年缩短至数月
科技数码
AI如何将材料研发周期从20年缩短至数月

AI能否用于新材料发现? 将时间倒回三十年前,这个问题的答案几乎是“绝无可能”。 上世纪90年代,国内科研人员首次尝试利用神经网络预测合金性能。彼时,计算资源极度匮乏,数据分散且质量参差,人工智能在材料科学领域更像一个超前的概念构想,距离实际落地应用遥不可及。 时至今日,局面已发生根本性转变。AI不

热心网友
05.18
光帆AI耳机开售 视觉感知全感穿戴设备今日上市
科技数码
光帆AI耳机开售 视觉感知全感穿戴设备今日上市

可穿戴设备市场迎来了一位风格独特的新玩家。光帆科技正式开售其首款产品——光帆AI全感穿戴设备。这套由AI全感耳机与AI手表组成的智能穿戴套装,搭载了自研的AI OS操作系统,其核心创新在于将视觉感知能力融入耳机设计。通过综合理解视觉、语音、位置等多维度环境信息,它致力于提供一种主动式的智能服务体验,

热心网友
05.18
AI如何构建蛋白质动态结构预测模型
科技数码
AI如何构建蛋白质动态结构预测模型

瑞士洛桑联邦理工学院研发出新型AI框架LD-FPG,首次能生成精确到原子的蛋白质完整动态模型并模拟其运动。该技术突破静态结构预测局限,通过图神经网络学习形态变化规律,重建高分辨率动态模型,以多巴胺D2受体为例验证,有望革新基于动态结构的药物设计,提升靶点筛选效率。

热心网友
05.18

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

广东无人机飞行空域最新调整范围扩大详解
科技数码
广东无人机飞行空域最新调整范围扩大详解

广东无人机适飞空域扩大16%至10 24万平方公里,覆盖全省57%陆地面积,滨海、郊野、工业园区及非核心城区公园等区域开放,深圳市区新增连片适飞区。飞行需通过民航局UOM平台提前申请,严禁“黑飞”,违者将受处罚。平台已升级,实现全国规则统一与分钟级空域更新,支持低空物流与巡检等应用。

热心网友
05.18
iPhone 17 Pro杭州门店抢购火爆 七千元起售迅速售罄
科技数码
iPhone 17 Pro杭州门店抢购火爆 七千元起售迅速售罄

杭州Costco门店因iPhone17系列手机引发抢购热潮,数百人排队致迅速断货。抢购源于官方降价与地方补贴叠加:iPhone17Pro全系直降千元,同时当地青年消费补贴可再减10%,最高省千元。双重优惠下,256GB版iPhone17Pro到手价低至7172元,较电商平台便宜近千元,吸引本地及周边消费者。目前门店仍处缺货状态,补货时间未定。

热心网友
05.18
千帆星座第九批组网卫星成功发射升空
科技数码
千帆星座第九批组网卫星成功发射升空

5月17日晚,长征八号运载火箭在海南商业航天发射场点火升空,成功将千帆星座第九批组网卫星送入预定轨道。此次发射是该发射场启用以来的第15次成功发射,也是今年第5次发射,体现了我国商业航天发射能力的日益成熟和常态化运营的稳步推进。

热心网友
05.18
七彩虹iGame M15/M16 Origo游戏本2026款上市 首发11499元起
科技数码
七彩虹iGame M15/M16 Origo游戏本2026款上市 首发11499元起

七彩虹新款iGameM15 M16Origo2026款游戏本已发售,起售价11499元。M15为15 3英寸黑色机身,配备2 5K300Hz屏,最高可选Ultra9处理器与RTX5070显卡。M16为16英寸白色款,屏幕规格相同,处理器性能更强,电池容量更大。两款均提供多种配置,享受国家补贴后价格更具竞争力,面向中高端游戏玩家与创作者。

热心网友
05.18
联想ThinkPad T14 Gen 7发布 支持LPCAMM2可更换内存
科技数码
联想ThinkPad T14 Gen 7发布 支持LPCAMM2可更换内存

联想在北美市场推出新款ThinkPadT14Gen7商务笔记本,支持用户自行更换LPCAMM2内存。该机型提供多款英特尔酷睿Ultra处理器选项,内存可选16GB至64GB,电池与屏幕亦有多种配置,其中顶配版搭载OLED屏幕。产品起售价为1618美元,高配版本价格超过3700美元,主要面向商用及专业办公市场,兼顾性能、可升级性与不同预算需求。

热心网友
05.18