Rails4、Simple Form——语言选择
Rails 4, Simple Form - language selection
我正在尝试用 Rails 4 制作一个应用程序。我使用简单的形式。
我有一个表格要求用户选择他们的工作语言。
<%= f.input :working_languages, as: :select, collection: AVAILABLE_LANGUAGES.sort.map {|k,v| [v,k]}, label: "Select your working language" %>
我的 config/initializer 文件夹中也有一个 available_languages.rb
AVAILABLE_LANGUAGES = {
en: "English",
de: "Deutsche",
fr: "Français",
es: "Español"
}
当我尝试这样做时,出现了这个错误。有谁知道是什么意思吗?
NameError in Profiles#edit
profiles/_form.html.erb where line #39 raised:
uninitialized constant ActionView::CompiledTemplates::AVAILABLE_LANGUAGES
config/initializers/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" %>
更好的方法是将它放在辅助程序中 & 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" %>
我正在尝试用 Rails 4 制作一个应用程序。我使用简单的形式。
我有一个表格要求用户选择他们的工作语言。
<%= f.input :working_languages, as: :select, collection: AVAILABLE_LANGUAGES.sort.map {|k,v| [v,k]}, label: "Select your working language" %>
我的 config/initializer 文件夹中也有一个 available_languages.rb
AVAILABLE_LANGUAGES = {
en: "English",
de: "Deutsche",
fr: "Français",
es: "Español"
}
当我尝试这样做时,出现了这个错误。有谁知道是什么意思吗?
NameError in Profiles#edit
profiles/_form.html.erb where line #39 raised:
uninitialized constant ActionView::CompiledTemplates::AVAILABLE_LANGUAGES
config/initializers/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" %>
更好的方法是将它放在辅助程序中 & 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" %>