2013-08-18 7 views
0

Я после http://ruby.railstutorial.org/ , и я в chapter10 --build в microposts , но я назвал the_microposts не microposts , а потом у меня была эта проблема:неопределенный метод `the_microposts_path»

Когда я посещаю static_page/домой, он показывает:

неопределенный метод `the_microposts_path» для # < #: 0xb628402c>

и АП пликация след:

приложение/просмотров/общий/_the_micropost_form.html.erb: 1: в _app_views_shared__the_micropost_form_html_erb___1052260201__619399208' app/views/static_pages/home.html.erb:9:in _app_views_static_pages_home_html_erb_ _628014758'

Кажется, что я не определил метод? Но я определил его в моем контроллере static_pages:

def home 
    @the_micropost = current_user.the_microposts.build if signed_in? 
end 

Моя домашняя страница:

<section> 
     <%= render 'shared/the_micropost_form' %> 
</section> 

и мой _the_micropost_form.html.erb является:

<%= form_for(@the_micropost) do |f| %> 
    <%= render 'shared/error_messages', object: f.object %> 
    <div class="field"> 
    <%= f.text_area :content, placeholder: "Compose new micropost..." %> 
    </div> 
    <%= f.submit "Post", class: "btn btn-large btn-primary" %> 
<% end %> 

мои модели пользователя:

has_many :the_microposts, dependent: :destroy 

the_micropost модели:

belongs_to :user 

Мои маршруты:

resources :users 
resources :sessions, only: [:new, :create, :destroy] 
root 'static_pages#home' 
match '/signup', to: 'users#new', via: 'get' 
match '/signin', to: 'sessions#new', via: 'get' 
match '/signout', to: 'sessions#destroy', via: 'delete' 
match '/help', to: 'static_pages#help', via: 'get' 
match '/about', to: 'static_pages#about', via: 'get' 
match '/contact', to: 'static_pages#contact', via: 'get' 

ничего плохого ?? Я всегда следуйте инструкциям, это потому, что я определил другое имя? (The_microposts как microposts)

+1

Я предполагаю, что это должно быть 'micropost_path', но просто чтобы быть уверенным, пожалуйста, напишите либо результат' грабли routes' или ваш 'конфигурации/routes.rb' – vee

+0

Конечно, я редактировал его ~ ! это что-то не так? –

+0

У вас нет маршрута для вашего ресурса микропотоков. Добавить 'resources: microposts' после' resources: sessions ... ' – vee

ответ

0

Вы должны определить маршрут для Micropost ресурса так же, как вы определили для users и sessions. Обновите config/routes, чтобы включить resource :microposts.

resources :users 
resources :sessions, only: [:new, :create, :destroy] 
resources :microposts 
root 'static_pages#home' 
... 
+0

Спасибо! Моя проблема решена! –