我有一個表項目每個0或更多的類別。在我看來,我想顯示0個項目,直到與每個類別相關的JQuery單擊事件 - 當用戶點擊「食品」時,我想顯示所有類別爲「食品」的項目;當用戶點擊「照片」時,我想要顯示與食品和照片相關的兩個項目。如何在視圖中查看RoR控制器實例變量?
所以在jQuery的單擊事件我定義了一個Ajax調用:
params = 'category_name=' + cat;
$.ajax({
url: "/projects_controller/filter_list",
data: params
})
,其中「貓」是(格式爲「食品攝影雜誌等」)
在所選類別的名稱我的projects_controller我開始了一個filter_list方法:
def filter_list
@categories = []
words = params[:category_name].split(/\W+/)
words.each { |word| @categories.push(Category.where("name = ?", word)) }
@projects = ...
end
但現在我卡住了。 1)如何獲得與@categories中的任何類別相關的所有項目?和2)如何在我的視圖中顯示@projects變量?現在我只是顯示所有像這樣:
<% Project.all.each do |project| %>
<tr style="display:none" class="project <% project.categories.all.each do |cat| %><%= cat.name %> <% end %>">
<td><%= project.filename %></td>
<td><a href='project/<%= project.id %>'><%= project.location %></a>
<td><% project.categories.all.each do |cat| %><%= cat.name %>, <% end %></td>
<% end %>
我試過,並得到錯誤「未定義的方法'每個'爲零:NilClass」該行。 – user1436111
請檢查我的更新的答案,其中有更多的信息和傳統的模型設計實例 – HungryCoder
啊,這是有道理的。非常感謝!! – user1436111