繁体   English   中英

Rails非表下拉列表

[英]Rails non-table drop down list

我需要有一个下拉列表,用户可以在其中选择他们想每周进入的星期几。 值永远不会改变。 就在星期日,星期一,...,星期六吧? 似乎需要做很多工作才能制作一张桌子并放入一周中的几天。我当然不需要创建,更新或删除它们的功能。 有没有简单的方法来处理这样的事情? 或者,也许不是一周中的几天,而是停车,倒车,倒车,空挡,开车等状态。 最主要的是值永远不会改变。 只有几个。 那么为什么要摆桌子呢? 我在想有一种方法可以创建一个已经有数据的模型,但是我可能是错的。

为什么要创建模型? 只需使用选择。

DAYS = ['Monday', 'Tuesday', 'Wednesday', ...]
select(:event, :day, DAYS)

通常最好将常数放在相关模型中,然后从那里使用它。

在您的模型中:

class Event < ActiveRecord::Base
  DAYS = ['Monday', 'Tuesday', 'Wednesday', ...]
end

然后您认为:

select(:event, :day, Event::DAYS)

这是我经常使用的另一个技巧:

select(:event, :day, Event::DAYS.collect {|d| [d, Event::DAYS.index(d)]})

请注意,Ruby在其日期类中已经内置了星期几的英文名称。 如果可以的话,您应该尝试利用它。 这是rdoc

然后如Can所建议的那样执行以下操作:

select(:event, :day, Date::DAYNAMES)

请记住,此解决方案并非特别适合国际化。 如果i18n存在问题,我还将检查本地化的日期插件以及在Rails 2.2中为支持i18n而进行的更改。

尝试这个:

<%= select_tag(:week_day, options_for_select([['Sunday', 'Sun'], ['Monday', 'Mon'], ...])) %> 

请参阅http://guides.rubyonrails.org/form_helpers.html#theselectandoptions标签

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM