Rails 4,简单表格 - 语言选择

时间:2016-01-15 10:41:19

标签: ruby-on-rails collections simple-form

我正在尝试使用Rails 4创建应用程序。我使用简单的表单。

我有一张表格要求用户选择他们的工作语言。

th

我的config / initializer文件夹中还有一个available_languages.rb

 <%= f.input :working_languages, as: :select, collection: AVAILABLE_LANGUAGES.sort.map {|k,v| [v,k]}, label: "Select your working language" %>

当我尝试时,我收到此错误。有谁知道这意味着什么?

AVAILABLE_LANGUAGES = {
    en: "English", 
    de: "Deutsche", 
    fr: "Français", 
    es: "Español"
}

2 个答案:

答案 0 :(得分:3)

配置/初始化/ language_array.rb

module LanguageArray
  AVAILABLE_LANGUAGES = {
    en: "English", 
    de: "Deutsche", 
    fr: "Français", 
    es: "Español"
}
end

并在表单中访问如下:

<%= f.input :working_languages, as: :select, collection: LanguageArray::AVAILABLE_LANGUAGES.sort.map {|k,v| [v,k]}, label: "Select your working language" %>

答案 1 :(得分:0)

更好的方法是把它放在帮助者和use this for your constant(您的观点中提供):

#config/initializers/global_constants.rb
module GlobalConstants
    # also notice the call to 'freeze'
    LANGUAGES = {
       en: "English", 
       de: "Deutsche", 
       fr: "Français", 
       es: "Español"
    }.freeze
end

#app/helpers/application_helper.rb
module ApplicationHelper
   def available_languages
       GlobalConstants::LANGUAGES
   end
end

然后您就可以使用:

<%= f.collection_select :working_languages, available_languages, :first, :last, label: "Select your working language" %>