ruby-on-rails - 命名空间嵌套资源

标签 ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-5

我的项目有以下路线:

namespace :teacher do
 resources job_applications do
   resources :job_application_addresses
 end

我的表单有以下代码

<%= simple_form_for [:teacher, @job_application_address] do |form|

<% end %>

我的 Controller 有以下内容:

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| %>

这是我的此 View 的路线:

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_addressesjob_application的嵌套资源。但我在你的表格中没有看到它。 您可以通过两种方式做到这一点:

  1. 您可以像这样在 simple_form_for url 构建器中添加 job_application 对象

    <%= simple_form_for [:teacher, @job_application, @job_application_address] do |form|
    
    <% end %>
    
  2. 您可以在表单中添加 url 选项

    <%= simple_form_for [@job_application, @job_application_address], url: teacher_job_application_job_application_addresses_path do |form|
    
    <% end %>`
    

在这两种情况下,您都需要在 Controller 的 new 操作中拥有 @job_application 对象

希望对你有帮助

关于ruby-on-rails - 命名空间嵌套资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57192699/

相关文章:

ruby-on-rails - ActiveRecord 在事务中是否执行批量插入/删除?

ruby-on-rails - 如何迭代此 Ruby 代码以便我可以在 map 上动态显示标记?

ruby - Ruby 中的 SingletonMethods 和 InstanceMethods 是什么

javascript - Rails 3.2.2 不执行 rjs

升级到Snow Leopard后的Mysql2 gem问题

ruby-on-rails - 如何在rails 3中的路由中设置默认参数值

mysql - 错误:ActiveRecord::StatementInvalid:Mysql2::Error:字段 'full_name' 没有默认值

ruby-on-rails - 安装rake(10.1.0)时发生错误,并且Bundler无法继续

ruby-on-rails - 将文件保留为数据源或将所有内容放入数据库中

ruby-on-rails - Ruby On Rails 查询总和和组?