我想要得到什麼應該是一個基本的表連接工作。這是我第一次使用數據庫,所以我很有可能錯過簡單的東西。我使用的是Rails 3.2.13。簡單的軌道加入示例
我有兩個表。第一個是提要,它包含rss提要列表和其他幾個特徵,如標籤。第二個是feed_entries,它包含單獨的故事。 feed_entries.feed_name列與列feeds.name中的元素匹配。下面是模型文件:
class Feed < ActiveRecord::Base
attr_accessible :color, :lastUpdated, :name, :posted, :read, :tag, :url
has_many :feed_entries, foreign_key: "feed_name", primary_key: "name"
end
class FeedEntry < ActiveRecord::Base
attr_accessible :guid, :name, :published_at, :status, :summary, :url
belongs_to :feed, foreign_key: "name", primary_key: "name"
end
我不明白foreign_key和primary_key,但基於我讀過,我認爲他們是正確設置。
目前,我可以使用FeedEntry.where(feed_name:'BBC')或類似文件提供某些Feed的所有條目。我試圖呈現與Feed表中某些列匹配的條目,如tag = Daily。我試過這些命令:
Feed.joins(:feed_entries).where("feed_entries.tag = ?", 'Daily') #error
FeedEntry.joins(:feed).where("feeds.tag = ?", 'Daily') #empty
Feed.joins(:feed_entries).where(tag: 'Daily') #no columns from feed_entries
第一個給出錯誤,因爲沒有feed_entries.tag(它是Feed中的一列)。第二個不返回任何條目。第三個返回正確數量的條目,但只返回feed表中的列,而不是更重要的feed_entries表。
任何人都可以解釋我錯過了什麼嗎?