更新 - 我现在已经解决了这个问题- 我为每个课程项目创建了一个部分,并从主列表视图中呈现它们。感谢您的所有帮助,我不太确定它为什么会起作用,但它确实END OF UPDATE
抱歉,如果这看起来像是重复发帖,但我已经尝试将解决方案应用于类似问题,但它们没有奏效,我被困住了!欢迎任何建议,谢谢。
问题 我有一个属于“列表”模型的“课程”模型。课程在属于列表的页面上创建和删除,即“/listing/2/courses”
错误信息
No route matches [DELETE] "/listings/2/courses"
课程控制器 def 销毁细节
class CoursesController < ApplicationController
before_action :authenticate_user!, except: [:show]
before_action :set_listing
before_action :set_course, except: [:index, :new, :create]
def destroy
@course = @listing.courses.find(params[:id])
@course.destroy
flash[:notice] = "Course deleted!"
redirect_back(fallback_location: request.referer)
end
private
def set_course
@listing = Listing.find(params[:listing_id])
@course = Course.find(params[:id])
end
def set_listing
@listing = Listing.find(params[:listing_id])
end
def course_params
params.require(:course).permit(:name, :curriculum_type, :summary, :address, :course_places, :start_date, :finish_date, :price)
end
end
列表/列表ID/课程页面详细信息
<%= @listing.courses.each do |f| %>
<div class="jumbotron">
<ul>
<li>Name = <%= f.name %></li>
<li>Type of course = <%= f.curriculum_type %></li>
<li>Number of places = <%= f.course_places %></li>
<li>Start Date = <%= f.start_date %></li>
<li>Finish Date = <%= f.finish_date %></li>
<li>Price (£) = <%= f.price %></li>
<%= link_to "Delete Course", listing_courses_path(@listing, @course), method: :delete %>
</ul>
</div>
<% end %>
Routes.rb 详细信息
resources :users, only: [:show]
resources :listings, except: [:edit] do
member do
get 'listing'
get 'pricing'
get 'description'
get 'photo_upload'
get 'amenities'
get 'location'
get 'courses'
end
resources :courses, except: [:edit] do
member do
get 'listing'
get 'pricing'
get 'description'
get 'photo_upload'
get 'amenities'
get 'location'
end
end
end