0
我有一個模型「Events
」,每個事件包含一個「Genre
」(不同模型)的ID數組。當我創建一個事件時,我檢查了一堆盒子並將檢查過的類型保存到數據庫中。這一切工作正常。Ruby on Rails - 檢索ID數組並使用該數組查詢不同的模型
當我運行循環顯示所有事件時,字段genre_ids
會返回一個數組,其中包含每個所選流派的id,需要從genres
表中檢索。
我嘗試了一些我發現但尚未成功的建議。
類型模型:
class Genre < ActiveRecord::Base
has_and_belongs_to_many :events
end
事件模型:
class Event < ActiveRecord::Base
belongs_to :user
has_many :genres
end
活動控制器:
class EventsController < ApplicationController
def index
@event_all = Event.all
end
def get_genres(event_id)
@event_genre = Event.find(event_id).genre_id
end
helper_method :get_genres
end
-------
最後的循環:
<div id="index-events-wrap">
<% @event_all.each do |ea| %>
<div class="item">
<div class="event-image">
image here
</div>
<ul>
<li><%= ea.name %></li>
<li><%= get_genres(ea.id) %></li>
<li><%= ea.venue_name %></li>
<li><%= ea.venue_address %></li>
<li><%= ea.venue_postcode %></li>
</ul>
</div>
<% end %>
</div>
+1,我正準備回答同樣的事情。你也應該避免使用'.all'(一開始工作正常,但想象一下,有十億個事件......)。使用'.limit',或類似[will_paginate](https://github.com/mislav/will_paginate/)/ [kaminari](https://github.com/amatsuda/kaminari) –
感謝您的幫助球員: ) –
我明白你對.all的意思。這是暫時的,因爲當我實現它一個預期,它不會被。所有,但基於事件日期:)現在我只是想獲得的所有屏幕上的..謝謝了一堆 –