使用country_select gem和form_tag而没有模型

时间:2015-02-09 12:41:36

标签: ruby ruby-on-rails-4

我在表格标签中使用Rails 4中的country_select gem:

<%= form_tag(@url, method: :post, class: "form-horizontal") do %>
    <div class="form-group">
      <%= label_tag(:country_code, "Country code") %>
      <%= country_select :country_code, @country_code, class: "form-control" %>
    </div><% end %>

我收到以下错误。

undefined method `NZ' for "NZ":String

这是一个安静的异常错误,我没有为country_select gem找到任何其他实例。 rails应用程序没有数据库并且正在与外部数据库通信,因此此应用程序中没有模型。我被建议使用Open Struct来解决这个问题。但是,我想知道有没有人知道更快的解决方案?表单正在拾取数据库中的数据!

2 个答案:

答案 0 :(得分:4)

由于您的app中可能已获得country_select gem,因此您还拥有countries gem,因为它是country_select的依赖项。所以你可以使用select_tag这样的options_for_select宝石来使用普通的Rails表单助手countriesselect_tag :country, options_for_select(ISO3166::Country.all, params[:country])

ISO3166::Country.all

这比使用OpenStruct执行此操作更好。

有关详细信息和其他可以使用的查找器,请参阅var date = hfAllDates.Value.Split('#'); https://github.com/hexorx/countries

答案 1 :(得分:0)

问题在于我没有模特。我需要使用OpenStruct数据结构来帮助我模拟对象。您可以阅读更多相关信息here