找不到带有' =' =:27的工作

时间:2016-07-07 13:20:39

标签: ruby-on-rails ruby activerecord

我正在查询

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

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

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

@job = Job.find(27)

所以我认为是导致错误的冒号。但它应该工作。它让我疯了。 有没有办法摆脱结肠,或者有什么简单的东西应该是东方?

4 个答案:

答案 0 :(得分:2)

您的网址应为http://localhost:3000/jobs/27

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

答案 1 :(得分:1)

您可能拥有以下路线:

resources :jobs

您在ROR中创建的工作网址应为:

link_to job_path(@job.id)

所以这会生成url:

http://localhost:3000/jobs/27

因此,不应在网址中生成冒号。

答案 2 :(得分:0)

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

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

答案 3 :(得分:-1)

伙计道歉。是的错误是我在表单中生成网址时。我把结肠放在前面或身上......

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