2015-07-14 2 views
0

На Cloud9, я создаю клон instagram в своем путешествии по обучению RoR. Одним из шагов, перечисленных (который намеренно расплывчатый, чтобы подтолкнуть студент протянуть руку и учиться против просто быть данным ответа) является добавить следующее:Невозможно получить новую форму сообщения для отображения

= simple_form_for @post do |f| 
=f.input :image 
=f.input :caption 
=f.input :submit 

ошибки не стартовали, похоже, это работает отлично , Перезагрузили рельсы. Затем было написано:

«в этом случае мы хотим создать новое сообщение. Добавьте переменную @post в новое действие».

Итак, я думал, что имел в виду posts_controllers.rb, чтобы добавить следующее:

def new 
    @post = Post.create 
end 

Так это то, что в моем posts контроллер:

class PostsController < ApplicationController 
    def index 
     @posts = Post.all 
    end 

    def create 
     @post = Post.create 
    end 
    end 

Everytime я получаю следующее:

No route matches [GET] "/new 

Что я делаю неправильно?

+0

Первое, что нужно. в новом действии мы не создаем сообщение, мы просто его инициализируем. Для этого вам следует делать @post = Post.new. Во-вторых, если вы можете поделиться файлом маршрутов. особенно для ресурсов должностей.? эта линия существует там. ресурсы: сообщения – Athar

+0

route.rb: Rails.application.routes.draw делать ресурсов: сообщения корня 'сообщений # индексных' конца – JohnnyBurst

+0

файла маршруты в порядке. пожалуйста, связывайте маршруты рейка exec. он перечислит все маршруты для приложения. вы можете видеть сообщение для новых действий там/posts/new. во-вторых, откуда вы называете это новое действие. Поделись, пожалуйста. – Athar

ответ

0

Опечатка была simple_form.

  1. imput должен был input.

  2. URL-адрес: /posts/new, а не только /new.

  3. =f.input :submit должно быть f.button.

Смежные вопросы