Ruby on rails rails使用rails4中的状态子区域选择国家/地区

Ruby on rails rails使用rails4中的状态子区域选择国家/地区,ruby-on-rails,carmen,Ruby On Rails,Carmen,全部。虽然我使用的是rails4,但我遵循的是文档,在选择一个国家时,我无法让州分区工作。事实上,当保留子区域代码时,我甚至无法导航到该站点。我得到这个错误: localhost:3000 Processing by OrdersController#new as HTML Rendered orders/_subregion_select.html.erb (1.9ms) Rendered orders/_form.html.erb (773.3ms) Rendered orde

全部。虽然我使用的是rails4,但我遵循的是文档,在选择一个国家时,我无法让州分区工作。事实上,当保留子区域代码时,我甚至无法导航到该站点。我得到这个错误:

localhost:3000

Processing by OrdersController#new as HTML
  Rendered orders/_subregion_select.html.erb (1.9ms)
  Rendered orders/_form.html.erb (773.3ms)
  Rendered orders/new.html.erb within layouts/application (775.8ms)
Completed 500 Internal Server Error in 784ms

ActionView::Template::Error (undefined method `downcase' for nil:NilClass):
    1: <div id="order_state_wrapper">
    2:   <% parent_region ||= params[:parent_region] %>
    3:   <% country = Carmen::Country.coded(parent_region) %>
    4: 
    5:   <% if country.nil? %>
    6:     <em>Please select a country above</em>
  app/views/orders/_subregion_select.html.erb:3:in `_app_views_orders__subregion_select_html_erb__937058573181156642_69893053026600'
  app/views/orders/_form.html.erb:100:in `block in _app_views_orders__form_html_erb__3775537416523760398_69893046471120'
  app/views/orders/_form.html.erb:1:in `_app_views_orders__form_html_erb__3775537416523760398_69893046471120'
  app/views/orders/new.html.erb:6:in `_app_views_orders_new_html_erb__3931135682021831649_69893046299220'
config/routes.rb

get '/orders/subregion_options' => 'orders#subregion_options'
#耙道

             Prefix      Verb   URI Pattern                          Controller#Action
orders_subregion_options GET    /orders/subregion_options(.:format)  orders#subregion_options
直接浏览分区域路线并指定国家时:

http://localhost:3000/orders/subregion_options?parent_region=%22US%22

Started GET "/orders/subregion_options?parent_region=%22US%22" for 192.168.122.1 at 2013-07-08 13:20:21 -0400
Processing by OrdersController#subregion_options as HTML
  Parameters: {"parent_region"=>"\"US\""}
DEPRECATION WARNING: Relation#first with finder options is deprecated. Please build a scope and then call #first on it instead. (called from service at /usr/local/rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/webrick/httpserver.rb:138)
  User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1
  Rendered orders/_subregion_select.html.erb (0.2ms)
Completed 200 OK in 4ms (Views: 1.3ms | ActiveRecord: 0.2ms)

gem carmen rails没有在其编写的github页面上注册

carmen rails是一个rails 3插件,它提供了两种新的表单助手方法:country_select和Subsection_select

此外,在travis-ci.org上,所有构建都是使用rails 3.2完成的

我想说的是,gem可能还没有准备好rails4

您应该在github页面上打开一个问题


在看过你的评论之后,我检查了你正在使用的fork,除了分支名称之外,我没有看到任何与Rails 4相关的提交


查看changelog文件()会让我觉得rails 4的兼容性还没有完成,但也许我错了。

gem carmen rails没有在它编写的github页面上注册

carmen rails是一个rails 3插件,它提供了两种新的表单助手方法:country_select和Subsection_select

此外,在travis-ci.org上,所有构建都是使用rails 3.2完成的

我想说的是,gem可能还没有准备好rails4

您应该在github页面上打开一个问题


在看过你的评论之后,我检查了你正在使用的fork,除了分支名称之外,我没有看到任何与Rails 4相关的提交


查看changelog文件()会让我觉得rails 4的兼容性还没有实现,但也许我错了。

我在rails 3.2.15应用程序中也遇到了同样的错误。我不得不对卡门宝石做一个小小的改动,这样它才能工作。按照以下说明操作,您应该是金色的:

  • 在项目根目录下的终端中,使用
    bundle open carmen
    打开carmen gem库
  • 查找文件
    lib/carmen/querying.rb
  • 将第15行替换为以下内容:

    code=code.try(:downcase)#代码都是ASCII码

  • 我已经向原始作者提交了一个pull请求,因此这可能很快在master分支中得到修复,但在此之前,您可以执行上述操作,也可以在GEM文件中使用,如下所示:

    gem 'carmen', github: 'joshuapinter/carmen'
    

    我在Rails 3.2.15应用程序中遇到了相同的错误。我不得不对卡门宝石做一个小小的改动,这样它才能工作。按照以下说明操作,您应该是金色的:

  • 在项目根目录下的终端中,使用
    bundle open carmen
    打开carmen gem库
  • 查找文件
    lib/carmen/querying.rb
  • 将第15行替换为以下内容:

    code=code.try(:downcase)#代码都是ASCII码

  • 我已经向原始作者提交了一个pull请求,因此这可能很快在master分支中得到修复,但在此之前,您可以执行上述操作,也可以在GEM文件中使用,如下所示:

    gem 'carmen', github: 'joshuapinter/carmen'
    

    找到了导致你的错误的原因我也用完了

    <div id="order_state_code_wrapper"> 
      <% parent_region ||= params[:parent_region] %>
      <% unless parent_region.nil? %>
         <% country = Carmen::Country.coded(parent_region) %>
      <% end%>
      <% if country.nil? %>
        <em>Please select a country above</em>
      <% elsif country.subregions? %>
        <%= subregion_select(:order, :state_code, parent_region) %>
      <% else %>
        <%= text_field(:order, :state_code) %>
      <% end %>
    </div>
    

    找到了导致你的错误的原因我也用完了

    <div id="order_state_code_wrapper"> 
      <% parent_region ||= params[:parent_region] %>
      <% unless parent_region.nil? %>
         <% country = Carmen::Country.coded(parent_region) %>
      <% end%>
      <% if country.nil? %>
        <em>Please select a country above</em>
      <% elsif country.subregions? %>
        <%= subregion_select(:order, :state_code, parent_region) %>
      <% else %>
        <%= text_field(:order, :state_code) %>
      <% end %>
    </div>
    

    忘了说我用的是什么版本的卡门:[root@rails]#grep-i carmen Gemfile gem'carmen rails',:git=>'',:branch=>'rails4'[root@rails ]#bundle show carmen-rails/usr/local/rvm/gems/ruby-2.0.0-p195/bundler/gems/carmen-rails-92d6d10c930dI在rails 3.2.15上遇到了相同的错误,因此这不是rails 4的特定问题。忘记说明我使用的是什么版本的carmen:[root@rails]#grep-i carmen Gemfile gem'carmen rails',:git=>'',:branch=>'rails4'[root@rails ]#捆绑显示carmen rails/usr/local/rvm/gems/ruby-2.0.0-p195/bundler/gems/carmen-rails-92d6d10c930dI在rails 3.2.15上遇到了相同的错误,因此这不是rails 4的特定问题。我认为它还没有完全准备好rails 4。但我想知道是否有人让它工作。我想我会一直戳它。谢谢。我发现有人用的叉子对某些东西有用,所以我想试试。我在Rails 3.2.15上遇到了相同的错误,因此这不是Rails 4的特定问题。我想它还没有完全准备好Rails 4。但我想知道是否有人让它工作。我想我会一直戳它。谢谢。我发现有人用的叉子对某些东西有用,所以我想试试。我在Rails3.2.15上也遇到了同样的错误,所以这不是Rails4的特定问题。
    <div id="order_state_code_wrapper"> 
      <% parent_region ||= params[:parent_region] %>
      <% unless parent_region.nil? %>
         <% country = Carmen::Country.coded(parent_region) %>
      <% end%>
      <% if country.nil? %>
        <em>Please select a country above</em>
      <% elsif country.subregions? %>
        <%= subregion_select(:order, :state_code, parent_region) %>
      <% else %>
        <%= text_field(:order, :state_code) %>
      <% end %>
    </div>
    
     <% unless parent_region.nil? %>
         <% country = Carmen::Country.coded(parent_region) %>
      <% end%>
    
     url = "/subregion_options?parent_region=#{country}"
    
     get '/subregion_options' => 'orders#subregion_options'