要使用:country输入,请安装country_select插件

时间:2013-03-20 23:17:55

标签: ruby-on-rails ruby-on-rails-3 forms activeadmin

我的指南模型有一个国家/地区属性。我不想使用插件,我只想将国家作为字符串。一切正常,直到我尝试在activeadmin中编辑指南,然后我收到错误消息:

  

ActionView :: Template :: Error(要使用:country输入,请安装   country_select插件,如下所示:   https://github.com/jamesds/country-select):       1:insert_tag renderer_for(:edit)

以我的形式

 <%= f.input :country, as: :string%>

在我的admin / guidelines.rb中我有

index do                            
    column :title   
    column :specialty                
    column :content       
    column :hospital
    column :country   
    column :user
    default_actions                   
  end

6 个答案:

答案 0 :(得分:14)

我不确定从哪里获得此表单代码,但我遇到与Active Admin相同的问题,并通过明确指示表单将字段视为字符串来解决它:

ActiveAdmin.register Guideline do

  form do |f|
    f.inputs 'Details' do
      f.input :country, :as => :string
    end
    f.actions
  end

end

答案 1 :(得分:4)

首先,您需要在GemFile中添加gem

gem 'country-select'

创建帮助文件'/app/helpers/active_admin/views_helper.rb'。添加以下代码

module ActiveAdmin::ViewsHelper

  def country_dropdown 
    ActionView::Helpers::FormOptionsHelper::COUNTRIES
  end 
end 

在您的视图文件中使用

form do |f|
  f.inputs do 
    f.input :country, as: :select, collection: country_dropdown
  end

  f.actions
end

答案 2 :(得分:1)

使用country_select。如果您最近这样做,似乎可以正常使用Rails 4.1。加上Rails旧回购链接到这个而不是国家选择。

答案 3 :(得分:0)

您正在使用 ActiveAdmin ,因此您还使用 Formtastic

在Formtastic中,在文件 formtastic / lib / formtastic / inputs / country_input.rb 中,它清楚地说:

# Rails doesn't come with a `country_select` helper by default any more, so you'll need to do
# one of the following:
#
# * install the [country_select](https://github.com/stefanpenner/country_select) gem
# * install any other country_select plugin that behaves in a similar way
# * roll your own `country_select` helper with the same args and options as the Rails one

我会将gem 'country-select'添加到您的 Gemfile 并执行捆绑安装,这是最简单,最快速的解决方案。

答案 4 :(得分:-1)

我猜您可以安装gem,然后覆盖active_admin中的显示。

答案 5 :(得分:-4)

我建议您使用country-select

gem 'country-select'

我花了很多时间来找出为什么country-select不能以我的形式工作:)