首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Rails 3的下拉列表中安排Ancestry树中的条目?

在Rails 3中,要在下拉列表中安排Ancestry树中的条目,可以使用以下步骤:

  1. 首先,确保已经安装了Ancestry gem。在Gemfile中添加以下代码:
代码语言:txt
复制
gem 'ancestry'

然后运行bundle install

  1. 在模型中添加Ancestry字段。例如,如果您有一个名为Category的模型,请在app/models/category.rb中添加以下代码:
代码语言:ruby
复制
class Category< ActiveRecord::Base
  has_ancestry
end
  1. 创建一个辅助方法,用于生成下拉列表。在app/helpers/categories_helper.rb中添加以下代码:
代码语言:ruby
复制
module CategoriesHelper
  def ancestry_select(categories, select_options = {})
    select_options.reverse_merge!({
      selected: nil,
      disabled: nil,
      include_blank: true,
      prompt: "Select a category"
    })

    content_tag(:select, name: "category[parent_id]") do
      options_for_select(
        nested_options_for_select(categories, select_options),
        select_options[:selected]
      )
    end
  end

  private

  def nested_options_for_select(categories, select_options, level = 0)
    result = []

    categories.each do |category|
      option = [("-" * level) + category.name, category.id]
      if select_options[:disabled] && select_options[:disabled].include?(category)
        option[0] = "[#{option[0]}]"
      end
      result<< option

      if category.children.any?
        result += nested_options_for_select(category.children, select_options, level + 1)
      end
    end

    result
  end
end
  1. 在视图中使用辅助方法生成下拉列表。例如,在app/views/categories/_form.html.erb中添加以下代码:
代码语言:erb
复制
<%= form_for(@category) do |f| %>
  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>

  <div class="field">
    <%= f.label :parent_id %><br />
    <%= ancestry_select(Category.arrange) %>
  </div>

  <div class="actions">
    <%= f.submit "Save" %>
  </div>
<% end %>

现在,下拉列表应该显示Ancestry树中的条目。请注意,这个答案没有涉及到云计算相关的内容,因为Ancestry是一个基于Rails的树形数据结构插件,与云计算无关。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在HTML的下拉列表中包含选项?

为了在HTML中创建下拉列表,我们使用命令,它通常用于收集用户输入的表单。为了在提交后引用表单数据,我们使用 name 属性。如果没有 name 属性,则下拉列表中将没有数据。...用于将下拉列表与标签相关联;id 属性是必需的。要在下拉列表中定义选项,我们必须在 元素中使用 标签。...价值发短信指定要发送到服务器的选项的值倍数倍数通过使用,可以一次选择多个属性选项。名字名字它用于在下拉列表中定义名称必填必填通过使用此属性,用户在提交表单之前选择一个值。...大小数此属性用于定义下拉列表中可见选项的数量价值发短信指定要发送到服务器的选项的值自动对焦自动对焦它用于在页面加载时自动获取下拉列表的焦点例以下示例在HTML的下拉列表中添加一个选项 标签和 标签在列表中添加选项 -<!

27920
  • 电商管理系统原型分享- E-Market

    在页面搭建过程中,我们充分利用了摹客Mockplus的封装组件和图标,如内容面板、弹出面板、下拉选择框组件等,完成了产品思路的表达。...使用方式: ① 在某个页面中设计好导航栏组件样式; 在此款原型中,我们使用了矩形+图标+文字组件进行组合设计,也可以使用带文字图标组件直接组合,另外,列表、菜单、折叠面板、树组件等,也适用于导航栏的快速设计...5.消息列表选择状态切换设计 在设计邮件和聊天页面的消息列表时,为了突出选择,我们对被选中的条目增加了颜色切换的设计,当消息列表中某个条目被选中时,颜色会切换为白色,且与右侧展开的详情页颜色一致,互相呼应...6.其他组件使用技巧: 在这款电商管理系统原型中,还使用了许多Mockplus的封装组件来呈现电商管理系统的各项功能,如: ① 下拉列表框组件 当我们想要呈现上文所述的内容切换效果,但内容层太多,无法使用分段控件实现...双击下拉列表框组件,即可编辑条目名称和设置交互。在右侧属性面板中还可以设置文本颜色、选中颜色、是否允许输入等属性,非常方便。 ?

    1.7K30

    如何使用RVM在FreeBSD 10.1上安装Ruby on Rails

    本教程将介绍如何在FreeBSD 10.1服务器上使用RVM设置Ruby on Rails开发环境。 课程准备 在开始之前,您只需要: 一个FreeBSD 10.1 腾讯CVM。.... ~/.rvm/scripts/rvm 第3步 - 安装Ruby 您现在可以使用RVM安装任何版本的Ruby。由于2.2.2是截至2015年6月的最新稳定版本,我们将安装此版本。...50295) [x86_64-freebsd10.1] 第4步 - 安装Ruby on Rails 在这一步中,我们将安装Ruby on Rails。...如果您还不在/tmp目录中,请更改为该目录。 cd /tmp 使用该rails命令创建一个名为test-project的新项目(或任何您喜欢的项目)。...exit 结论 在本教程中,您学习了如何在FreeBSD 10.1服务器上设置Ruby on Rails。您现在可以使用FreeBSD服务器作为Rails项目的开发环境!

    4.6K10

    在测试自动化中使用Java枚举

    为了进行测试,让我们缩小将要使用的国家/地区的范围:奥地利,爱沙尼亚和西班牙。这些国家/地区中的每个国家/地区都有我们需要在注册表格中提供的3个属性:国家/地区名称,城市列表和电话前缀。...如您所见,Country属性是静态的。 在注册表格上,从下拉列表中选择国家,从另一个下拉列表中选择城市,并通过在字段中键入来提供电话号码。...这意味着,从国家/地区下拉列表中,我们将选择与“ ES”枚举条目的“ 标签 ”属性相对应的值。这很容易检索:Country.ES.label。...但是,我们需要记住,出于显示目的,国家/地区下拉列表还包含一个不带任何文本的条目。要求说我们不想在下拉列表中有任何预定义的选择。 ? 选择国家/地区后,即可使用城市下拉菜单进行互动。...我们要编写的测试需要检查我们想要并已存储在Enum中的所有国家和城市是否存在于其相应的下拉列表中。还要记住,每个下拉列表中都有空条目。

    3.2K10

    在测试自动化中使用Java枚举

    为了进行测试,让我们缩小将要使用的国家/地区的范围:奥地利,爱沙尼亚和西班牙。这些国家/地区中的每个国家/地区都有我们需要在注册表格中提供的3个属性:国家/地区名称,城市列表和电话前缀。...如您所见,Country属性是静态的。 在注册表格上,从下拉列表中选择国家,从另一个下拉列表中选择城市,并通过在字段中键入来提供电话号码。...这意味着,从国家/地区下拉列表中,我们将选择与“ ES”枚举条目的“ 标签 ”属性相对应的值。这很容易检索:Country.ES.label。...但是,我们需要记住,出于显示目的,国家/地区下拉列表还包含一个不带任何文本的条目。要求说我们不想在下拉列表中有任何预定义的选择。 选择国家/地区后,即可使用城市下拉菜单进行互动。...我们要编写的测试需要检查我们想要并已存储在Enum中的所有国家和城市是否存在于其相应的下拉列表中。还要记住,每个下拉列表中都有空条目。

    2.7K20

    JQuery 案例:下拉列表选中条目

    在前端的舞台上,下拉列表是常见的用户交互元素,但有时候我们想要更多的交互体验。通过巧妙运用 JQuery,我们可以实现下拉列表中选中条目的左右移动功能,为用户提供更加灵活的选择方式。...JQuery 下拉列表选中条目移动实现原理实现下拉列表选中条目的左右移动,主要涉及以下几个步骤:使用 HTML 创建一个下拉列表,并添加一些选项。使用 JQuery 选择器获取选中的下拉列表。...为选中的下拉列表绑定监听事件,监听键盘左右方向键的按下。在事件处理函数中,获取当前选中的选项,并将其左右移动。下面是一个简单的示例:条目... --> 在这个示例中,我们创建了一个简单的下拉列表,并通过键盘左右方向键实现选中条目的左右移动。...-->小贴士在使用下拉列表选中条目移动功能时,有一些小贴士可能对你有帮助:1. 键盘操作提示在页面中为用户提供键盘操作的提示,让用户知道可以通过键盘操作进行左右移动。

    20110

    【Java 进阶篇】JQuery 案例:下拉列表选中条目左右移动,打破选择的边界

    在前端的舞台上,下拉列表是常见的用户交互元素,但有时候我们想要更多的交互体验。通过巧妙运用 JQuery,我们可以实现下拉列表中选中条目的左右移动功能,为用户提供更加灵活的选择方式。...JQuery 下拉列表选中条目移动实现原理 实现下拉列表选中条目的左右移动,主要涉及以下几个步骤: 使用 HTML 创建一个下拉列表,并添加一些选项。...使用 JQuery 选择器获取选中的下拉列表。 为选中的下拉列表绑定监听事件,监听键盘左右方向键的按下。 在事件处理函数中,获取当前选中的选项,并将其左右移动。...-- 更多条目... --> 在这个示例中,我们创建了一个简单的下拉列表,并通过键盘左右方向键实现选中条目的左右移动。...实际应用场景 下拉列表选中条目的左右移动功能在实际应用中有着广泛的使用场景,以下是一些例子: 1. 时间选择器 在时间选择器中,用户可以通过左右方向键快速切换时、分、秒等时间单位,提高选择效率。 <!

    28530

    面试题之会议安排

    现在基本上排在第一线的互联网公司面试时都会考算法题,而且题目不是单纯的算法而是描述一个场景,让面试者根据自己的知识选用自己认为合适的算法和面向对象思路解决场景中遇到的问题。...,到下午5点前必须结束; 现在你有一个清单,上面写明了所有要安排的议题,和每个议题会占用的时间; 清单如下 Writing Fast Tests Against Enterprise Rails 60min...30min User Interface CSS in Rails Apps 30min 清单中 lightning占用5分钟,其他议题都各自注明了占用时间 现在你要写一个程序把清单上的议题安排进四个时间段内...接下来就是要把19个Talk对象,刚到4个Session的talk_list属性中。 安排会议前先把Talk对象们按照持续时长倒序排序。...循环Talk对象列表,将时长最长的Talk对象安排到剩余时间最多的Session对象中。

    1.1K20

    php dropdownlist,遇到dropdownlist

    但是树控件的使用和操作都比较复杂,对于一些比较简单的操作,比如单选其中的一个节点的情况则可用使用下拉列表框来代替。...ASP.NET操作ORACLE数据库添加数据记录时如何生成自动编号… 文章 wangccsy 2006-02-15 927浏览量 在Option条目中填充前导空格的方法 在使用Web页面上的下拉列表框(...SELECT element)显示数据列表时,有时我们会遇到有层次的数据条目。...比如论坛中的子论坛和它的分类之间,以及一些具有包含关系的层次数据条目。使下拉列表框中,不同的level有一定的显示缩进将是非常友好的一种排版方式。...列表框分为很多种,比如下拉列表框(DropDownList)、列表框(ListBox),还有为了美观用div模拟的,以… 文章 金色海洋 1970-01-01 794浏览量 1-3 Winform 中的常用控件

    3K10

    Unity Odin从入门到精通(三):静态检查器详解

    如下图所示: 过滤类型:首先在静态检查器中点击Type Filter按钮来打开下拉列表。然后从该下拉列表当中选择某些条目。...最后从该下拉列表里面选择某个条目,进而让静态检查器只查看该条目代表的类型。...如下图所示: 过滤访问权限:当通过静态检查器选择了具体的类型后,就可以首先在静态检查器中点击访问权限按钮来打开下拉列表。然后从该下拉列表当中选择某些条目。...过滤成员:当通过静态检查器选择了具体的类型后,就可以首先在静态检查器中点击成员按钮来打开下拉列表。然后从该下拉列表当中选择某些条目。...3.可以在静态检查器上直接修改函数参数的数值以及函数结果的数值,并且通过点击Invoke按钮来调用该函数。 4.可以在静态检查器上直接修改Odin中组定制特性应用的成员的数值。

    1.3K10

    数据结构练手小项目(AVL树、哈希表、循环链表、MySQL数据库)

    文章目录 前言 正文(无删减) 我的想法(删减修改版) 数据导入与数据存储 功能实现 数据结构 用户结构 SIM卡结构 AVL树数据结构 哈希表结构 数据表 用户表 SIM卡表 时间安排 前言 本月主打数据结构...3.客户数据应组织为AVL搜索树,并按“护照号”排序。...注意:1.在此数据中存在在“护照号”字段中包含值X的条目,在“ SIM卡号”中包含值Y的条目分别表示向客户发放了护照号码X的SIM卡号Y。 证明没有为护照号码为X的客户发行了编号为Y的SIM卡。...新客户注册;(AVL树中插入数据) 客户服务提现;(AVL树中主键搜索) 查看所有注册客户;(主键遍历AVL树) 清除客户数据;(AVL树中主键删除) 客户按全名或地址的片段进行搜索。...3.客户数据应组织为AVL搜索树,并按“护照号”排序。

    1.2K30

    GO,KEGG富集分析工具——DAVID

    DAVID(https://david.ncifcrf.gov/home.jsp)是一个生物信息数据库,整合了生物学数据和分析工具,为大规模的基因或蛋白列表(成百上千个基因ID或者蛋白ID列表)提供系统综合的生物功能注释信息...DAVID目前的工具可以实现以下功能 1.识别富集的生物条目,尤其是GO条目 2.发现功能相关的基因集合 3.聚类冗余的注释条目 4.寻找其他功能相关的但是不在列表中的基因 5.列出互作的蛋白质 此外,...富集分析的作用是可以帮助生物学家们了解基因集合的生物学作用。 它的使用方法简单: STEP1 用户将感兴趣的基因集合粘贴到列表框中或者上传基因结合文件,文件的格式为每行一个基因,或基因间用逗号隔开。...STEP2 选择标识符,从下拉列表中选择上传的基因的标示符,如gene_symbol STEP3 选择上传基因的类型,是背景基因结合还是要做功能富集的基因结合 STEP4 提交列表,submit list...比如我们想要查看GO的BP条目富集结果,点开后新的页面如下: ? 点download file可进行下载。

    5.2K20

    模板代码 - 列表和下拉刷新

    模板代码 - 列表和下拉刷新   手机应用一个常见的界面模式就是:顶部的ActionBar + TabStrip导航,中间的ListView,可以下拉刷新或者是底部的加载更多。...为特殊的样式,就是一直显示“左、中、右” 3个tab指示器,左右滑动ViewPager切换Fragment时,或者点击tab标签时左右滚动来显示更多其它的tab。...假设我们使用ListView显示一个下载应用的列表界面,在ListView的底部显示“加载更多”这样的按钮,那么就是让ListView同时显示2种类型的条目。   ...上面的LoadMoreViewHolder显示了使用ViewHolder来管理每个列表条目对应的View是非常方便的,这样可以让ListView的每个条目的创建、状态修改的代码都集中在一个类中,如果不是使用...,常见的有顶部的轮播图片,顶部下拉刷新,以及底部的加载更多等等。

    2.9K50

    Google Research吐嘈tensorflow!TF-Ranking迎来大更新:兼容Keras更容易开发

    首先,将响应查询的 n 个文档的列表合并为一个列表 元组,把这些元组输入到一个预训练的语言模型(如,BERT)。...然而,尽管 GAMs 已经在回归和分类任务中得到了广泛的研究,但是如何在排名环境中应用它们还不是很清楚。...例如,GAMs 可以直接应用于为列表中的每个单独条目建模,但是为条目相互作用和这些条目排序的环境建模是一个更难的研究问题。...虽然神经模型已经在多个领域取得了最先进的性能,但是专门的梯度增强决策树(gradient boosted decision trees, GBDTs) ,如 LambdaMART,仍然是各种开放 LTR...其次,由于 GBDTs 使用决策树对其输入特征空间进行分区,它们自然更能适应排名数据中数值尺度的变化,这些数据通常包含 Zipfian 或其他倾斜分布的特征。

    91050

    C# WPF中用ChartControl绘制柱形图

    在树中选择系列1,然后在“选项”选项卡中,指定“填充”作为系列的显示名称。 使用“展开”按钮展开“填充系列”选项,然后选择“点”项目。...第二个序列是隐藏的,因为它有数值参数。 将第二个系列的显示名称指定为区域。 单击“清除系列数据”按钮以清除自动生成的数据。 然后,定义面积系列点的数据,如下所示: Step 3....自定义图表 本节介绍如何自定义图表的外观。 #在单独的窗格中显示系列 以下步骤显示如何在单独的窗格中显示每个系列: 展开“窗格”项。单击“其他窗格”项目的“添加”按钮以创建新窗格。...在“图元”树中选择面积系列。在选项选项卡中,找到窗格选项,并在其下拉列表中选择窗格#1项。 添加次轴 按照以下步骤添加和自定义次轴: 展开“轴”项目。单击次Y轴项目的“添加”按钮以添加次Y轴。...在“选项”选项卡中,使用选项的下拉列表将“Y轴”选项设置为次轴Y#1。 在“图元”树中选择次轴Y#1。然后,将轴的对齐选项设置为“近”。 下图显示了结果。

    2.9K10

    jquery autoComplete 自定义回写样式

    max: 20,//autoComplete下拉显示项目的个数             autoFill: false, //要不要在用户选择时自动将用户当前鼠标所在的值填入到input框            ...//mustMatch: true, //autoComplete只会允许匹配的结果出现在输入框,所有当用户输入的是非法字符时将会得不到下拉框             matchContains: true..., //决定比较时是否要在字符串内部查看匹配,如ba是否与foo bar中的ba匹配.使用缓存时比较重要.不要和             multipleSeparator: '',//如果是多选时,...                        }; return rows;             }, formatItem: function (data, i, max) {//格式化列表中的条目...row:条目对象,i:当前条目数,max:总条目数   return  ""+data.itemName

    2.3K20

    西门子HMI-自定义登录对话框

    具备不同操作权限的用户登录时,相对于系统提供的登录对话框,自定义登录对话框显得更加灵活。自定义登录对话框可以选择手动输入用户名,也可以通过下拉列表的方式选择用户名。 1....如果采用下拉列表输入用户名方式,则可以参考本文档中的描述。...2 项目组态 2.1 在“用户管理”中组态用户和密码 2.2 在“文本和图形列表”中组态文本列表 添加文本列表UserName(该名称可自行定义),并创建相应的文本列表条目。...输出文本(输出) 执行“查找文本”函数后的输出结果 索引 定义列表条目值的变量 语言 定义标识列表条目所使用的运行系统语言 文本列表 定义文本列表,列表条目从文本列表中读取  在弹出画面中组态用于密码输入的...下拉选择用户 当前登录的用户 自定义登录窗口 备注:如果在项目运行时通过用户视图控件对用户进行新增、删除或者修改用户名的操作,由于文本列表的条目是固定的用户名

    4.6K30

    如何运行PHP脚本作为普通用户与Cron

    Cron是一个功能强大的实用程序,用于基于Unix的操作系统(包括Linux)的时间安排工作。...建议阅读: 如何使用Anacron在Linux上安排作业 在本文中,我们将解释如何允许普通系统用户通过Linux中的cron作业计划程序运行或执行PHP脚本。...要创建或编辑您自己的crontab文件中的条目,请键入: $ crontab -e 并查看所有crontab条目,键入此命令(这将简单地将crontab文件打印到std输出): $ crontab -l...如果要每十分钟自动执行上述脚本,请将以下条目添加到crontab文件中。...使用Shell脚本来自动执行Linux系统维护任务 12有用的PHP命令行用法每个Linux用户必须知道 如何在Linux终端中运行PHP代码 30个系统管理员的有用的Linux命令 就这样!

    1.5K20
    领券