ハマった。あなたの助けが必要です。で検証したパスを使用したにもかかわらずrake routes
user_queue_videos GET /users/:user_id/queue_videos(.:format) queue_videos#index
次のエラーが発生しました:
ActionController::RoutingError at /videos
No route matches {:controller=>"queue_videos"}
ビュー内のリンク
%li= link_to "My Queue", user_queue_videos_path
ルート.rb
resources :users, only: [:new, :create] do
resources :queue_videos
end
queue_videos_controller
class QueueVideosController < ApplicationController
before_filter :require_user
def index
@videos = current_user.my_queued_videos
end
end
使用しようとしましmember routes
たが、うまくいかなかったので、削除しましたが、まだインデックステンプレートをレンダリングしません...
2回目の試行:私が入れたとき
class QueueVideosController < ApplicationController
before_filter :require_user
def index
@user.id = current_user.id #current_user is defined in ApplicationController
@videos = current_user.my_queued_videos
end
end
ビューで
%li= link_to "My Queue", user_queue_videos_path(@user.id)
次のエラーが表示されます。
RuntimeError at /videos
Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
3回目の試行: 次に、次のことを試しました: in view
%li= link_to "My Queue", user_queue_videos_path(current_user.id)
次のエラーが表示されます。
NoMethodError at /users/1/queue_videos
undefined method `id=' for nil:NilClass
注:ApplicationControllerで
class ApplicationController < ActionController::Base
protect_from_forgery
helper_method :logged_in?, :current_user
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def logged_in?
!!current_user
end
def require_user
unless logged_in?
flash[:error] = "You don't have permission to do this"
redirect_to root_path
end
end
end