私は、イベントがイベントに属する多くのビデオを持っているアプリケーションを持っています。ビデオのインスタンスをクリックし、そのevent_id外部キーを使用してevents#showビューにリダイレクトして、正しいイベントを識別するにはどうすればよいですか?アソシエーションは確実に機能しますが、ロジック、またはリダイレクトをどこで実行する必要があるか、つまりルート、コントローラー、またはビューでさえ考えるのに苦労していますか?
関連する可能性のあるコードは次のとおりです。
ビューから
<% @video.each do |v| %>
<li><%= link_to image_tag(v.video_thumb('150'), width: 150), v %></li>
<% end %>
class VideosController < ApplicationController
def show
@video = Video.find(params[:id])
if current_event
@videos = current_event.videos
@random_video = current_event.videos.random
else
@videos = Video.all
@random_video = Video.random
end
end
class EventsController < ApplicationController
def show
@event = Event.find_by_name(request.subdomain)
if request.params[:id].present?
@event = Event.find(params[:id])
end
if not @event.nil? and @event.videos.any?
@video = Video.random(@event)
@comment = @video.comments.new
@comments = @video.comments
end
end
resources :events do
match '', to: 'events#show', constraints: lambda { |r| r.subdomain.present? && r.subdomain != 'www' }
end
resources :videos
他にサポートが必要なコードがある場合はお知らせください。関連するコードで質問を更新します。
助けてくれてありがとう....