命名空间嵌套资源
Namespace nested resources
我的项目有以下路线:
namespace :teacher do
resources job_applications do
resources :job_application_addresses
end
我的表格有以下代码
<%= simple_form_for [:teacher, @job_application_address] do |form|
<% end %>
我的控制器有以下内容:
def new
@job_application_address = JobApplicationAddress.new
end
def create
@job_application_address = JobApplicationAddress.new(job_application_address_params)
@job_application_address.job_application = @job_application
if @job_application_address.save
flash[:success] = 'Successfully created'
end
end
最后我收到了这个错误:
undefined method `teacher_job_application_addresses_path' for #<#<Class:0x00007fda0c4191d0>:0x00007fda143d1af8>
Did you mean? teacher_job_application_path
teacher_job_applications_path
Extracted source (around line #3):
<%= simple_form_for [:teacher, @job_application_address] do |form| %>
这是我的路线:
teacher_job_application_job_application_addresses GET /teacher/job_applications/:job_application_id/job_application_addresses(.:format) teacher/job_application_addresses#index
POST /teacher/job_applications/:job_application_id/job_application_addresses(.:format) teacher/job_application_addresses#create
new_teacher_job_application_job_application_address GET /teacher/job_applications/:job_application_id/job_application_addresses/new(.:format) teacher/job_application_addresses#new
edit_teacher_job_application_job_application_address GET /teacher/job_applications/:job_application_id/job_application_addresses/:id/edit(.:format) teacher/job_application_addresses#edit
teacher_job_application_job_application_address GET /teacher/job_applications/:job_application_id/job_application_addresses/:id(.:format) teacher/job_application_addresses#show
PATCH /teacher/job_applications/:job_application_id/job_application_addresses/:id(.:format) teacher/job_application_addresses#update
PUT /teacher/job_applications/:job_application_id/job_application_addresses/:id(.:format) teacher/job_application_addresses#update
DELETE /teacher/job_applications/:job_application_id/job_application_addresses/:id(.:format) teacher/job_application_addresses#destroy
我该怎么办?我会感谢你的帮助。
您的 job_application_addresses
是 job_application
的嵌套资源。但我没有在你的表格中看到它。
您可以通过两种方式完成:
您可以像这样在 simple_form_for url 构建器中添加 job_application 对象
<%= simple_form_for [:teacher, @job_application, @job_application_address] do |form|
<% end %>
您可以在表单中添加一个url选项
<%= simple_form_for [@job_application, @job_application_address], url: teacher_job_application_job_application_addresses_path do |form|
<% end %>`
在这两种情况下,您都需要在控制器中执行 new
操作中的 @job_application object
。
希望对您有所帮助
我的项目有以下路线:
namespace :teacher do
resources job_applications do
resources :job_application_addresses
end
我的表格有以下代码
<%= simple_form_for [:teacher, @job_application_address] do |form|
<% end %>
我的控制器有以下内容:
def new
@job_application_address = JobApplicationAddress.new
end
def create
@job_application_address = JobApplicationAddress.new(job_application_address_params)
@job_application_address.job_application = @job_application
if @job_application_address.save
flash[:success] = 'Successfully created'
end
end
最后我收到了这个错误:
undefined method `teacher_job_application_addresses_path' for #<#<Class:0x00007fda0c4191d0>:0x00007fda143d1af8>
Did you mean? teacher_job_application_path
teacher_job_applications_path
Extracted source (around line #3):
<%= simple_form_for [:teacher, @job_application_address] do |form| %>
这是我的路线:
teacher_job_application_job_application_addresses GET /teacher/job_applications/:job_application_id/job_application_addresses(.:format) teacher/job_application_addresses#index
POST /teacher/job_applications/:job_application_id/job_application_addresses(.:format) teacher/job_application_addresses#create
new_teacher_job_application_job_application_address GET /teacher/job_applications/:job_application_id/job_application_addresses/new(.:format) teacher/job_application_addresses#new
edit_teacher_job_application_job_application_address GET /teacher/job_applications/:job_application_id/job_application_addresses/:id/edit(.:format) teacher/job_application_addresses#edit
teacher_job_application_job_application_address GET /teacher/job_applications/:job_application_id/job_application_addresses/:id(.:format) teacher/job_application_addresses#show
PATCH /teacher/job_applications/:job_application_id/job_application_addresses/:id(.:format) teacher/job_application_addresses#update
PUT /teacher/job_applications/:job_application_id/job_application_addresses/:id(.:format) teacher/job_application_addresses#update
DELETE /teacher/job_applications/:job_application_id/job_application_addresses/:id(.:format) teacher/job_application_addresses#destroy
我该怎么办?我会感谢你的帮助。
您的 job_application_addresses
是 job_application
的嵌套资源。但我没有在你的表格中看到它。
您可以通过两种方式完成:
您可以像这样在 simple_form_for url 构建器中添加 job_application 对象
<%= simple_form_for [:teacher, @job_application, @job_application_address] do |form| <% end %>
您可以在表单中添加一个url选项
<%= simple_form_for [@job_application, @job_application_address], url: teacher_job_application_job_application_addresses_path do |form| <% end %>`
在这两种情况下,您都需要在控制器中执行 new
操作中的 @job_application object
。
希望对您有所帮助