Rails:利用ajax轻松实现二级级联
以下使用JQuery,ajax,实现rails的二级级联选择框
我根据访问的流程来实现这个功能
基本原理:两个并列的选择框,当第一个选择框中的选项被选中时,触发js方法,并把省份的id传给该方法,然后,在js与controller交互,也就是将省份的id传给controller,经过处理,将返回该省份下的所有城市到该js方法,将城市列表赋值到第二个选择框中。
一、视图部分
<div>省、市:</div>
<%= select_tag "province", options_for_select(["----请选择----"] + Register::Province.all.collect{|e| [e.name,e.id]}), :onchange => "get_options(this.value)" %>
<%= select_tag "city", "<option value=\"0\">--请选择上级--</option>"%>
上面给出了两个选择框
第一个框中从数据库中读出省份,第二个选择框初始值为一个选项 --请选择上级--
当第一个选择框中的选项被选中时,触发get_options方法,并将选项的值,也就是省份的id传给此方法
二、js部分
<script type="text/javascript">
function get_options(value){
$.ajax({
type: "POST",
url:'/friend/friend_state/get_options?id='+value,
data:'text',
success: function(data){
$("#city").html(data);
}
}
)
}
</script>
其中, url为与该方法交互的controller中的方法路径,并将省份id保存到标量id中,传到controller
返回值类型为文本,并将值赋给第二个选择框
三、controller部分
#省市,二级级联
def get_options
options = ""
city = Register::Province.find_by_id(params[:id]).city
city.each do |s|
options << "<option value=#{s.id}>#{s.name}</option>"
end
render :text => options
end
返回值即是第二个选择框的option值
分享到:
相关推荐
在“ruby on rails轻松使用”这个主题中,我们可以探讨以下几个关键知识点: 1. **安装Rails**: 首先,你需要确保已经安装了Ruby环境。然后,通过Ruby的包管理器gem来安装Rails。运行`gem install rails`命令即可...
基于ruby on rails框架实现的音乐推荐网站项目源码.zip基于ruby on rails框架实现的音乐推荐网站项目源码.zip基于ruby on rails框架实现的音乐推荐网站项目源码.zip基于ruby on rails框架实现的音乐推荐网站项目源码...
Ruby on Rails框架实现的无线点餐系统项目是一个基于无线网络技术,专为餐饮行业设计的综合性信息化解决方案。此系统利用Ruby on Rails全栈式MVC框架,结合当下先进的移动互联网技术,旨在提升餐厅运营效率、优化...
Ruby on Rails,简称RoR,是一款基于Ruby编程语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率,同时保持代码的简洁和可读性。RoR的核心理念是“Don't Repeat Yourself”(DRY)...
在描述中提到的"Knock"是一个专门为Rails API设计的库,它帮助开发者实现JSON Web Token(JWT)的身份验证,这是一种安全的身份验证机制,适用于无状态API。 JWT是一种轻量级的认证协议,它允许服务器向客户端发送...
- 如何在Rails中实现RESTful接口。 - **案例分析**: - 分析一个典型的RESTful应用示例。 #### 九、练习作业2-在Group里面发表文章-双层RESTFul - **目标**: - 在Group中添加Post功能。 - **实现过程**: - 创建...
网站会根据用户评分歌曲的数据对用户进行歌曲推荐,其中包括基于用户相似度和物品相似度的推荐,实现技术包括hadoop和mapreduce算法优化k-近邻算法实现。 网站运行:首先需要有ruby解析器和搭建rails环境,然后进入...
Struts2和Rails都是流行的Web开发框架,它们都提供了强大的功能来支持应用程序的国际化,使得开发者可以轻松地为不同语言的用户提供本地化体验。这里我们将深入探讨这两个框架的国际化实现。 **Struts2的国际化实现...
作者特别提到了“CRUD懶人大法Scaffold”,它是一种通过Rails自动生成代码的方式来快速搭建基本的CRUD操作,这大大简化了开发流程,使得开发者可以将更多的精力放在业务逻辑的实现上。 此外,书中还介绍了一些Rails...
RailsGuides中的"blog"程序是一个典型的入门级示例,旨在帮助初学者理解RoR的工作原理和核心概念。 在Rails中,**模型(Model)** 负责处理数据和业务逻辑,通常与数据库交互。在这个"blog"程序中,可能会有一个`...
此外,第二版还深入讨论了Rails 3.x和4.x中的路由系统,以及如何使用Unobtrusive JavaScript(UJS)实现更干净、分离的前端代码。 这两本书都强调了敏捷开发的原则,如迭代开发、持续集成、用户故事和重构。它们...
8. **邮件发送**:Rails的ActionMailer模块允许开发者轻松地发送电子邮件。例如,当用户提交简历时,系统可以自动发送确认邮件。配置SMTP服务器信息后,ActionMailer可以与Gmail、SendGrid等服务集成,实现邮件的...
Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...
rakismet, 轻松实现 Rails 和TypePad反垃圾邮件集成 Rakismet是一个协作的垃圾邮件过滤服务。 Rakismet 易于与 Rails 和 rack 应用集成。 支持typepad服务和通用Akismet端点的反垃圾邮件。兼容性Rakismet> = 1.0.0 ...
实例的源代码 博文链接:https://babo.iteye.com/blog/72298
充当租户 Ruby on Rails应用程序的行级多租户。 该宝石是出于我们对故障安全和偏僻方式的需求而诞生的,该方式通过共享数据库策略(与Rails无缝集成(近))为我们的Rails应用添加多租户。 actions_as_tenant为租户...
Rails API可以通过Gem(如Kaminari或WillPaginate)轻松实现这些功能。 5. **版本控制**:API的版本控制很重要,Rails API允许你为不同版本的API创建独立的命名空间,确保向后兼容性。 6. **错误处理**:Rails API...