【问题标题】:Couldn't find Job with 'id'=:27找不到具有 'id'=:27 的工作
【发布时间】:2016-07-07 13:20:38
【问题描述】:

我正在查询

 @job = Job.find(params[:id])

网址是 http://localhost:3000/jobs/:27

所以作业 ID 的参数在 url 中,我知道作业 27 存在。 当我搜索时它工作正常

@job = Job.find(27)

所以我认为是冒号导致了错误。但它应该工作。它快把我逼疯了。 有没有办法摆脱结肠或者我应该做一些简单的事情?

【问题讨论】:

  • 您是如何在视图中创建该路径的?

标签: ruby-on-rails ruby activerecord


【解决方案1】:

你的网址应该是http://localhost:3000/jobs/27

当 rails 看到像 /jobs/:id 这样的路由时,它知道将 :id 转换为参数。因此你能够做到params[:id]的原因。如果 url 是动态生成的,我很想知道你在哪里设置 url。

【讨论】:

    【解决方案2】:

    您的路线可能为:

    resources :jobs
    

    您在 ROR 中创建的工作 url 应该是:

    link_to job_path(@job.id)
    

    所以这会生成 url:

    http://localhost:3000/jobs/27
    

    因此不应在 url 中生成冒号。

    【讨论】:

      【解决方案3】:

      在你的表演动作中,完全摆脱 @job 并使用:

      @job = Job.find(params[:id])
      

      【讨论】:

        【解决方案4】:

        抱歉,伙计们。是的,错误是当我在表单中生成 url 时。我把冒号放在前面或者id...

        所以现在已经解决了.. 在我把它贴在 NET 上之前应该已经解决了这个问题:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2022-09-28
          • 2017-10-31
          • 1970-01-01
          • 2022-12-22
          • 2015-07-15
          • 2018-02-25
          • 1970-01-01
          相关资源
          最近更新 更多