我想按選定導演顯示所有影片。路線和控制器工作正常。但是,視圖中顯示的已過濾影片都是相同的。例如,我有四部電影,其中兩部有相同的導演。我想要的是在視圖頁面中顯示這兩個不同的元組,但是顯示的兩個元組是相同的。這是控制器代碼:導軌返回具有常見屬性的元組
def find_movies_by_same_director
@movie = Movie.find(params[:id])
@director = @movie.director
if (not @director.nil?) and (not @director.empty?)
#@movies = Movie.find_all_by_director(@director) if (not @director.nil?) and (not @director.empty?);
@movies = Movie.find_by_sql("SELECT * FROM movies i WHERE i.director == '#{@director}'")
render :director
else
flash[:notice] = "'#{@movie.title}' has no director information"
redirect_to root_path
end
end
我試圖左右逢源,和的find_by_sql find_by_all,找到了元組,但他們都得到了相同的結果。 這是視圖代碼:
%tbody
- @movies.each do |movie|
%tr
%th= @movie.title
%th= @movie.rating
%th= @movie.release_date
我新的軌道,所以有任何意見或建議,將不勝感激。
此外,無關你的問題,但在第6行執行搜索的更標準的Rails方式將是' @movies = Movie.where(導演:@director)'。更好的是,由於您不需要在視圖中使用'@ director',因此請執行'director = @ movie.director',然後執行'@movies = Movie.where(導演:導演)'。 – moveson
它的工作原理!非常感謝你的詳細回覆。 – kchen
很高興聽到它。當你有一刻時請接受答案。 – moveson