[英]Routing Error passing an ID on a link_to in Rails
我的Rails应用程序中有以下一组路线:
resources :customers do
resources :jobs
end
我也有以下两个模型-job.rb和customer.rb:
class Job < ActiveRecord::Base
belongs_to :customer
end
class Customer < ActiveRecord::Base
has_many :jobs
end
我的jobs_controller.rb中有以下新方法:
def new
@customer = Customer.find(params[:customer_id])
@job = @customer.jobs.build
end
我试图在创建后将客户ID直接传递给新作业,因为每个作业都应与一个客户相关联(没有无赖的作业,没有customer_id相关联)。
为此,我在客户视图页面上具有以下链接:
<%= link_to "Add New Job", new_customer_job_path(@customer) %>
单击时,ID正在传递,但是出现如下所示的无方法错误:
NoMethodError in Jobs#new
undefined method `jobs_path' for #<#<Class:0x007f89899d9030>:0x007f898a7ab0f0>
<%= form_for(@job) do |f| %>
因此,这似乎与我的路线有些冲突,因为它不喜欢我的工作路线-有人知道这是哪里来的吗?
先谢谢您的帮助。
form_for @job
将查找作业控制器。 因为您嵌套了它,所以它不起作用。
切换到
<%= form_for([@customer, @job]) do |f| %>
假设您有一个前置过滤器,可以在控制器中找到客户。
只需更换
<%= form_for(@job) do |f| %>
至
<%= form_for[@customer, @job]) do |f| %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.