【问题标题】:Rails 3.1 interface design - Cascading dropdown, form inputRails 3.1 界面设计——级联下拉、表单输入
【发布时间】:2011-10-16 19:03:51
【问题描述】:

对于我有以下模型的情况:

  • 国家
  • 国家
  • 城市
  • 意见

我想首先向用户展示 Coutries 的下拉菜单。
选择国家/地区后,国家/地区下方将显示“国家/地区”下拉菜单。
选择州后,州下方将出现城市下拉菜单。
选择城市后,会出现一个文本框,用户会写下他们对城市的看法。
将文本放入文本框中后,会出现一个“提交”按钮。
一旦用户点击“提交”,我就会处理表单数据。

我想使用之前的选择来填充相应表格中的每个下拉菜单,以限制下拉项目。
我也想要与复选框相同的功能。

基本上,我希望能够定义一个级联表单输入方案。我已经看到了一些关于该主题的信息,但没有任何东西可以将它紧紧地包裹在 Rails 3 中。例如:
Rails 3.1 Dependent / Cascading Dropdowns
Rails 3.1 interdependent select dropdown lists

... 似乎只提供部分解决方案。我感觉我可能遗漏了一些基本的 Rails 概念,并且这个(看似常见的)任务应该更容易。我想简化用户输入体验。我的模型有很多很好的默认数据,我想在用户做出输入选择时将它们呈现给他们。我似乎无法在一页上了解所有内容。

当我寻找“Rails 动态表单输入”时,我没有得到我正在寻找的搜索结果 搜索“Rails 级联下拉菜单”对一些人有所帮助。 “Rails active form”让我了解了一段互联网历史。

有人可以指路吗?

谢谢!


附录
这似乎暗示了我偶然发现的麻烦:http://guides.rubyonrails.org/form_helpers.html#building-complex-forms也许这就是我的答案?

【问题讨论】:

标签: ruby-on-rails ruby ruby-on-rails-3 user-interface user-input


【解决方案1】:

JQuery 是我认为的最佳选择。现在我不是与 JQuery 有关的专家,但我希望我至少可以为您指明正确的方向。要完成您的级联列表,您可以根据前一个的更改显示和隐藏选择输入。从那里我会研究一个名为 jquery-chained 的 JQuery 库。该库将允许您在州中显示仅选择与所选国家/地区相关的州。我确实有几个链式库的工作示例,如果您愿意,我可以展示一个示例,而且我相信有很多示例可以在 JQuery 中隐藏和显示表单元素。

【讨论】:

  • 感谢 janders223。沿着这些路线的 railscast 在这里与您一致:railscasts.com/episodes/75-complex-forms-part-3 讨论了隐藏屏幕元素和删除数据库记录之间的区别。作者承认他的例子很笨拙,但确实断言“它只是有效”。我的方案有额外的复杂性。例如,“children”元素的部分形式都是不同的,并且特定于孩子的类型。我希望有更优雅的东西,但可能会逆风。
  • 你还需要考虑到那个特定的情节现在已经有 4 年和 3 个版本的 Rails 旧了。在那一集中,Ryan 的方法使用链接来添加和删除 div。您可以按照相同的方法来实现相同的效果,只是监视选择的状态变化而不是使用链接。
  • 我愿意。我认识到 Ryan 出色的 Railcast 内容,而且它的时代已经到来。这是我发布这个问题的部分原因。我想知道是否有一种整洁、最新的方法来解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-03
  • 1970-01-01
  • 2022-09-26
相关资源
最近更新 更多