我的表单中有很多select
选项,其中包含一系列可能的选项。
E.g:
title_options = %w[Mr Mrs Miss Ms Dr]
在我看来,我将渲染select
(使用formtastic):
<%= f.input :title, :as => :select, :collection => title_options %>
目前,我将标题选项存储在helper
文件中,每个select
都有多种方法:
module SelectHelper
def days_options
...
end
def title_options
...
end
..
end
然后,在验证模型中,我可以扩展这个帮助器:
class user < ActiveRecord::Base
extend SelectHelper
validates :title, :inclusion => {:in => title_options}
end
或复制选项:
class user < ActiveRecord::Base
validates :title, :inclusion => {:in = %w[Mr Mrs Miss Ms Dr]}
end
有没有更好的方法来存储集合,例如,直接作为模型中的方法?我认为没有必要将这些选项存储在数据库中,因为它们不应该更改。
答案 0 :(得分:1)
嗯,为简化起见,您可以将此集合存储在类中的常量中。
class User < ActiveRecord::Base
TITLES = %w[Mr Mrs Miss Ms Dr]
validates :title, :inclusion => {:in => TITLES}
答案 1 :(得分:0)
您可以尝试使用enumerated_attribute gem或某些相同的功能