2013-12-16 12 views
0

Я совершенно новый для рубинов, и я следую за this ruby rails tutorial шаг за шагом, за исключением деталей, которые я назвал своим приложением «кино».Нет совпадений в маршруте [GET] "/ posts/new"

Я создал ресурс с именем «posts», есть контроллер класса, называемый контроллером сообщений. Из сообщений страницы/новых я должен опубликовать текст с заголовком и выполнить действие (показать). Я пытаюсь добавить действие show в файле маршрутов и в классе контроллера.

Действие представления должно вызываться при отправке формы, форма включает заголовок и текстовое поле, отображаемое в базу данных.

В paragraph 5.7, есть не-четкие инструкции: он говорит, чтобы добавить эту строку:

post GET /posts/:id(.:format)  posts#show 

К моему routes.rb файл, но он не говорит, куда писать это точно, я положил его под resources:posts (может быть, это не то место, о нем ничего не говорится).

Я также добавил метод показа в классе контроллера:

def show 
    @post = Post.find(params[:id]) 
end 
private 
    def post_params 
     params.require(:post).permit(:title,:test); 
    end 

Но когда я отправить форму, я все еще получаю эту ошибку:

enter image description here

Результат rake routes команда:

Prefix Verb URI Pattern Controller#Action
welcome_index GET /welcome/index(.:format) welcome#index
root GET / welcome#index
posts GET /posts(.:format) posts#index
POST /posts(.:format) posts#create
new_post GET /posts/new(.:format) posts#new
edit_post GET /posts/:id/edit(.:format) posts#edit
post GET /posts/:id(.:format) posts#show
PATCH /posts/:id(.:format) posts#update
PUT /posts/:id(.:format) posts#update
DELETE /posts/:id(.:format) posts#destroy

+2

Попробуйте перезагрузить сервер rails –

+2

Можете ли вы, пожалуйста, показать нам свой файл 'routes.rb'? – janfoeh

+0

покажите нам свои маршруты, запустив: 'rake routes' –

ответ

5

Это не говорит вам о dd это до routes.rb. Это один из путей, который создается автоматически:

resources :posts 

Удалить строку из вашего routes.rb перезапустить сервер и продолжить с учебником.

Совет: вы можете запустить rake routes, чтобы просмотреть все доступные маршруты в вашем приложении.

0

Весь ваш вопрос кажется мне совершенно противоречивым.

  • Вы никогда не сделать это в рельсах маршрутов -
    post GET /posts/:id(.:format) posts#show

    Вместо в routes.rb файл.
    get 'posts/:id' => 'posts#show'

  • Маршрутизация осуществляется на приоритетной основе (первый пришел первый обслужен), так что если вы добавляете получить «сообщения /: идентификатор» после того, как ресурсы: сообщения, это не использовать в качестве ресурсов: сообщения уже делает это за вас (прочитайте руководство по маршрутизации направляющих по ресурсам).

  • Ваша форма представления должна быть почтовыми данными, если вы используете ресурсы «новые» должны быть данными «получить», а соответствующая «почта» должна быть «создавать». У вашего «нового» маршрута есть ошибка, тогда где еще вы передаете форму для отправки данных формы?

Мое предложение состоит в том, что вы сохраняете «ресурсы: сообщение» и удаляете все остальные, соответствующие вашему: сообщению из файла маршрутов. Если у вас есть все остальное, то это, вероятно, должно работать нормально.

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