Вопрос по ruby-on-rails – Почему я продолжаю получать ошибку маршрутизации при посещении страницы пользователей в моем приложении Ruby on Rails?

1

Я пытаюсь добавить комментарии к микросообщениям, найденным вhttps: //github.com/railstutorial/sample_app_2nd_e из учебника Майкла Хартла.

Кажется, что если у пользователя нет микросообщений, проблем нет, и я могу получить доступ к его странице. Однако, если они есть, возникает ошибка маршрутизации. Это моя проблема.

Вот область, о которой идет речь, в моем файле rout.rb.

resources :microposts, only: [:create, :destroy] do
    resources :comments, 
  end

Это ошибка, которую я получаю, когда пытаюсь зайти на страницу пользователя (localhost: 3000 / users / 2):

Started GET "/users/2" for 127.0.0.1 at 2012-05-21 21:32:47 -0700
Processing by UsersController#show as HTML
  Parameters: {"id"=>"2"}
  User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."id" = ? LIMIT 1  [["id", "2"]]
  User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."remember_token" = 'iGivWVhrOQL2tp1MOOJwgA' LIMIT 1
  Rendered users/_follow_form.html.erb (0.8ms)
   (0.2ms)  SELECT COUNT(*) FROM "microposts" WHERE "microposts"."user_id" = 2
  CACHE (0.0ms)  SELECT COUNT(*) FROM "microposts" WHERE "microposts"."user_id" = 2
  Micropost Load (0.1ms)  SELECT "microposts".* FROM "microposts" WHERE "microposts"."user_id" = 2 ORDER BY microposts.created_at DESC LIMIT 30 OFFSET 0
  User Load (0.2ms)  SELECT "users".* FROM "users" WHERE "users"."id" = 2 LIMIT 1
  Rendered microposts/_micropost.html.erb (12.2ms)
  Rendered users/show.html.erb within layouts/application (53.1ms)
Completed 500 Internal Server Error in 69ms

ActionController::RoutingError (No route matches {:controller=>"comments", :format=>nil, :micropost_id=>#<Micropost id: nil, content: nil, user_id: nil, created_at: nil, updated_at: nil>}):
  app/views/microposts/_micropost.html.erb:23:in `_app_views_microposts__micropost_html_erb___1795431923022101738_32372620'
  app/views/users/show.html.erb:16:in `_app_views_users_show_html_erb__1221738286899740817_32260600'


  Rendered /home/alex/.rvm/gems/[email protected]/gems/actionpack-3.2.3/lib/action_dispatch/middleware/templates/rescues/routing_error.erb within rescues/layout (0.6ms)

здесь вывод граблей grep | комментарии

user_comments GET    /users/:user_id/comments(.:format)                    comments#index
                       POST   /users/:user_id/comments(.:format)                    comments#create
      new_user_comment GET    /users/:user_id/comments/new(.:format)                comments#new
     edit_user_comment GET    /users/:user_id/comments/:id/edit(.:format)           comments#edit
          user_comment GET    /users/:user_id/comments/:id(.:format)                comments#show
                       PUT    /users/:user_id/comments/:id(.:format)                comments#update
                       DELETE /users/:user_id/comments/:id(.:format)                comments#destroy
    micropost_comments GET    /microposts/:micropost_id/comments(.:format)          comments#index
                       POST   /microposts/:micropost_id/comments(.:format)          comments#create
 new_micropost_comment GET    /microposts/:micropost_id/comments/new(.:format)      comments#new
edit_micropost_comment GET    /microposts/:micropost_id/comments/:id/edit(.:format) comments#edit
     micropost_comment GET    /microposts/:micropost_id/comments/:id(.:format)      comments#show
                       PUT    /microposts/:micropost_id/comments/:id(.:format)      comments#update
                       DELETE /microposts/:micropost_id/comments/:id(.:format)  

а вот мой comments_controller.rb

class CommentsController < ApplicationController 
  def create
    @micropost = Micropost.find(params[:micropost_id]) 
    @comment = @micropost.comments.build(params[:comment]) 
    @comment.user = current_user

    if @comment.save 
      redirect_to @micropost
    else 
      redirect_to @micropost
    end 
  end 

  def show
    @comment = Comment.find(params[:id])
  end

  def new 

  end

  def destroy
    @comment = Comment.find(params[:id])
    @comment.destroy
    redirect_back_or root_path
  end
end
Похоже, ваша ссылка сформирована неправильно. Пожалуйста, покажите код, где вы получаете эту ошибку! Surya
Скажите мне, если вам нужна какая-либо другая информация, или если это не то, что вы искали. Благодарност BigBoy1337
пожалуйста, покажи свою ссылку Said Kaldybaev

Ваш Ответ

0   ответов

Похожие вопросы