2016-07-26 2 views
0

Я новичок, изучая рубин на рельсах, наблюдая за udemy видео, но я застрял на «ошибке маршрутизации». у видеопроктора, кажется, есть другой цветной текст, в то время как он использует возвышенное, поэтому я не уверен, что я должен иметь? В настоящее время я использую пробную версию возвышенного. мой код ниже и см. прикрепленные изображения. Спасибо!ruby ​​on rails code показывает белый текст

class PicsController < ApplicationController 

    def index 
    end 

    def new 
    @pic = Pic.new 
    end 

    def create 
    @pic = Pic.new(pic_params) 
    end 

    private 

    def pic_params 
    params.require(:pic).permit(:title, :description) 
    end 
end 

Когда я запускаю сервер, чтобы увидеть выходной результат: routing error Изображение показывает мой код в возвышенной текстовом редакторе: [! [Введите описание изображения здесь] [2]] [2]

config/routes.rb file

+1

Добро пожаловать в Rails и SO! Как вы управляете сервером? Каков вывод терминала? Какой URL-адрес вы посещаете в своем веб-браузере? Пожалуйста, укажите как можно больше информации, чтобы мы могли вам помочь. – Leito

ответ

3

Вы пытаетесь получить доступ к странице по адресу /posts, в то время как ваш контроллер и ваш файл маршрутов четко указывают, что путь должен быть /pic.

Try:

http://localhost:3000/pic 

Кроме того, кажется, что вы должны исправить нашу config/routes.rb:

Rails.application.routes.draw do 
    root "pics#index" 
    resources :pic 
    get 'posts' => 'pics#index', as: 'posts' 
end 

Примечание: Это соглашение об именах для контроллера является множественное имя в Rails. Это означает, что вы также должны убедиться, что ваши маршруты указывают на множественные версии имен контроллеров.

+0

спасибо spickermann за подсказку, но кажется, что проблема не решена, попробовав/pic, но я получил новую ошибку «uninitialized constant PicController», следующий мой код для файла route.rb. "Rails.application.routes.draw do Ресурсы: pic root" pics # index " end" –

+0

follow up ... есть причина, почему мой текст белый?в видеороликах udemy текст протектора в возвышенном синем –

+0

Вы можете настроить IDE, чтобы использовать какой цвет вы предпочитаете. Создатель видео может изменить цвета по умолчанию. – spickermann

0

Гораздо лучше, ваше имя контроллера - Pics, вы должны иметь resources :pics в вашем routes.rb файла. Вместо этого у вас есть resource :pic. Это просто хорошая практика, ошибка в том, что вы пытаетесь получить доступ к /сообщениям, а не /pic, или еще лучше: /фото, как только вы исправите свои маршруты.

+0

Я попробовал ваше предложение до сих пор никаких изменений ..... ту же ошибку, что и в описании. я буквально следил за udemy видео в T и triple проверил мой код. есть ли причина, по которой мой текст будет белым, а не синим, как в видео? –

+0

Ошибка не может быть одинаковой, если вы измените свой _routes.rb_ и перезагрузите свой сервер, вы сможете получить доступ к индексу pics # через _/pics_. – Leito

0

У вас нет маршрутизатора для сообщений. Перейти к конфигурации/routes.rb & добавить новую строку:

get 'posts' => 'pic#index', as: 'posts' 

& URL localhost:3000/posts будет иметь доступ с контроллером pic & действия index

или

resources :pics 

и run rake routes, чтобы показать свой путь выглядеть :

localhost:3000/pics будет иметь доступ с контроллером pics & Действие index

+0

спасибо Весы, но все та же ошибка: / –