Все курсы показываются на index.html.erb, и я пытаюсь просмотреть отдельный курс, нажав на просмотр больше. Который должен ссылаться на путь показа, насколько я понимаю, он показывает этот индивидуальный курс. Какой результат мне нужен.ActiveRecord :: RecordNotFound in CoursesController # show
Однако рельсы проходные этой ошибки на URL http://ruby-on-rails-102039.nitrousapp.com:3000/courses/rails (в пределах этого URL рельсов названия курса, название создаются с каждым новым курсом.
ActiveRecord::RecordNotFound in CoursesController#show
Couldn't find Course with 'id'=rails
Extracted source (around line #7):
def show @course = Course.find(params[:id]) end
контроллер курса
class CoursesController < ApplicationController
def index
@courses = Course.all
end
def show
@course = Course.find(params[:id])
end
Маршруты
devise_for :users
root 'signups#new'
resources :signups, only: [:new, :create]
resources :courses
Prefix Verb URI Pattern Controller#Action
root GET / signups#new
root GET / signups#new
signups POST /signups(.:format) signups#create
new_signup GET /signups/new(.:format) signups#new
courses GET /courses(.:format) courses#index
POST /courses(.:format) courses#create
new_course GET /courses/new(.:format) courses#new
edit_course GET /courses/:id/edit(.:format) courses#edit
course GET /courses/:id(.:format) courses#show
PATCH /courses/:id(.:format) courses#update
PUT /courses/:id(.:format) courses#update
DELETE /courses/:id(.:format) courses#destroy
index.html.erb
<div id="course-index">
<%@courses.each_slice(4) do|course| %>
<div class ="row">
<% course.each do |course|%>
<div class="col-md-3 col-sm-3">
<h3><%= course.title %></h3><br />
<h3><%= course. description %></h3><br />
<%= link_to 'View More', course_path(course), class:'btn btn-primary' %>
</div>
<%end%>
</div>
<%end%>
</div>
Модель
class CreateCourses < ActiveRecord::Migration
def change
create_table :courses do |t|
t.string :title
t.string :desciption
t.integer :course_id
t.timestamps null: false
end
end
end
show.html.erb
<h1>Courses#show</h1>
<h1><%= @course.title %></h1>
<p> <%= @course.description %></p>
Решение: Все три из них работали в методе шоу. Я просто не понимаю, почему @course = Course.find (params [: id]). Это потому, что у меня есть эти столбцы, определенные в модели.
@course = Course.find_by(params[:title])
@course = Course.find_by(params[:course_id])
@course = Course.find_by(params[:description])
Можете ли вы показать нам, как выглядит ваша таблица курсов, то есть какие столбцы вы определили. Я думаю, файл миграции, в который вы добавили курс, должен делать все. –
Кажется, у вас есть два вложенных каждого цикла, определяющих курс, вы хотели это сделать? Я понятия не имею, что происходит, но выглядит немного странно. – Tim
@Tim. OP выводит курсоры 4 в строку - вот почему есть вложенные циклы - переменные имена для переменных цикла не велики –