В нем написано undefined method
stories_path'`.NoMethodError in Story # new
Привет, Я пытался найти решение вышеупомянутой ошибки на некоторое время, но безрезультатно. Я также получаю ошибку в моем терминале, а также:
ActionView::Template::Error (undefined method `stories_path' for #<#<Class:0x005557c1a40560>:0x005557c1885cc0>
Did you mean? story_path):
1: <%= form_for @story do |f| %>
2: <%= render 'shared/errors', object: @story %>
3:
4: <div class="form-group">
У меня есть чувство, что это может быть связано с моими маршрутами, но я не уверен в том, как изменить конфигурацию.
Мой контроллер:
class StoryController < ApplicationController
before_action :find_story, only: [:destroy, :show, :edit, :update]
def index
@stories = Story.order('created_at DESC')
end
def new
@story = Story.new
end
def create
@story = Story.new(story_params)
if @story.save
flash[:success] = "Your beautiful story has been added!"
redirect_to root_path
else
render 'new'
end
end
def edit
end
def update
if @story.update.attributes(story_params)
flash[:success] = "More knowledge, more wisdom"
redirect_to root_path
else
render 'edit'
end
end
def destroy
if @story.destroy
flash[:success] = "I think you should have more confidence in your storytelling"
else
flash[:error] = "Can't delete this story, sorry"
end
end
def show
@stories = Story.all
end
private
def story_params
params.require(:story).permit(:title, :body)
end
def find_story
@story = Story.find(params[:id])
end
end
new.html.erb:
<%= form_for @story do |f| %>
<%= render 'shared/errors', object: @story %>
<div class="form-group">
<%= f.label :title %>
<%= f.text_field :title, class: 'form-control', required: true %>
</div>
<div class="form-group">
<%= f.label :body %>
<%= f.text_area :body, class: 'form-control', required: true, cols: 3 %>
</div>
<%= f.submit 'Post', class: 'btn btn-primary' %>
<% end %>
Мой routes.rb файл:
Rails.application.routes.draw сделать
devise_for :users
resources :story
root to: 'story#index'
end
и, наконец,/shared/_err ors.html.erb
<% if object.errors.any? %>
<div class="panel panel-danger">
<div class="panel-heading">
<h3 class="panel-title">The following errors were found while submitting the form:</h3>
</div>
<div class="panel-body">
<ul>
<% object.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
</div>
<% end %>
Добавлена информация: rake routes | grep stories
не работает. Однако rake routes | grep story
дисплей эти результаты:
story_index GET /story(.:format) story#index
POST /story(.:format) story#create
new_story GET /story/new(.:format) story#new
edit_story GET /story/:id/edit(.:format) story#edit
story GET /story/:id(.:format) story#show
PATCH /story/:id(.:format) story#update
PUT /story/:id(.:format) story#update
DELETE /story/:id(.:format) story#destroy
root GET / story#index
вы можете также разместить вывод 'рек маршрутов | grep stories' –
Еще один совет - ваше имя контроллера должно быть 'StoriesController' –
О, действительно? Я добавил дополнительную информацию выше. Я думаю, что это раскрывает несчастную реальность здесь! Что я сделал не так? – Benjamints