首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Carmen-rails - rails 4发行版

Carmen-rails - rails 4发行版
EN

Stack Overflow用户
提问于 2013-12-13 18:49:08
回答 3查看 417关注 0票数 1

我一直在跟踪它以设置rails应用程序的状态/国家下拉列表,但请注意,我得到了以下错误:

代码语言:javascript
复制
Started GET "/jobs/subregion_options?parent_region=BR" for 127.0.0.1 at 2013-12-13 21:01:09 +0000
Processing by JobsController#show as HTML
  Parameters: {"parent_region"=>"BR", "id"=>"subregion_options"}
  User Load (0.5ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 1 ORDER BY "users"."id" ASC LIMIT 1
  Job Load (0.2ms)  SELECT "jobs".* FROM "jobs" WHERE "jobs"."id" = ? LIMIT 1  [["id", "subregion_options"]]
Completed 404 Not Found in 4ms

ActiveRecord::RecordNotFound (Couldn't find Job with id=subregion_options):
  app/controllers/jobs_controller.rb:75:in `set_job'

当我的set_job过滤器仅如下所示时,我不明白为什么要这样做:

代码语言:javascript
复制
before_action :set_job, only: [:show, :edit, :update, :destroy] 

下面是我所关注的使用部分和路线的链接:

https://github.com/jim/carmen-demo-app

路由

代码语言:javascript
复制
                    jobs GET      /jobs(.:format)                        jobs#index
                         POST     /jobs(.:format)                        jobs#create
                 new_job GET      /jobs/new(.:format)                    jobs#new
                edit_job GET      /jobs/:id/edit(.:format)               jobs#edit
                     job GET      /jobs/:id(.:format)                    jobs#show
                         PATCH    /jobs/:id(.:format)                    jobs#update
                         PUT      /jobs/:id(.:format)                    jobs#update
                         DELETE   /jobs/:id(.:format)                    jobs#destroy
                    root GET      /                                      pages#index
  jobs_subregion_options GET      /jobs/subregion_options(.:format)      jobs#subregion_options

感谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-12-13 23:25:52

您错过了subregion_options的路线,在您的routes.rb中,您必须添加以下内容

代码语言:javascript
复制
resources :jobs do
  collection do
    get :subregion_options
  end
end

或者,如演示应用程序的自述所示:

代码语言:javascript
复制
get '/jobs/subregion_options' => 'jobs#subregion_options'

现在它点击show操作并尝试使用id = subregion_options寻找一个作业,我很确定这不是您想要的:)

票数 1
EN

Stack Overflow用户

发布于 2013-12-13 19:23:16

我也有同样的问题,我只是需要美国的一个选择。

这是我使用的代码,它解决了这个问题(对我来说)

代码语言:javascript
复制
module ApplicationHelper
  def us_states
    Carmen::Country.coded('US').subregions.map { |c| c.code }
  end
end

然后在我看来,...and:

<%= f.input_field :state, collection: us_states, include_blank: false %>

示例使用PARAMS提供国家代码

代码语言:javascript
复制
module ApplicationHelper
  def get_subregions(country_code = 'US')
    Carmen::Country.coded(country_code).subregions.map { |c| c.code }
  end
end

然后,生成指向视图的路由,捕获一个param,如www.mysite.com/myform/US

代码语言:javascript
复制
get 'myform/:cc', to: 'mycontroller#edit'

最后,在您的观点中,使用它作为您的助手的输入。像这样:

代码语言:javascript
复制
<%= f.input_field :state, collection: get_subregions(params[:cc]), include_blank: false %>

注意:这纯粹是伪代码,因此您可能必须对其进行调整才能使其正常工作。

票数 0
EN

Stack Overflow用户

发布于 2013-12-13 23:11:27

它是传递给作业的id,因为它是路由的第一次匹配。你能给我看一下你的routes.rb吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20573832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档