0

我不能找出什麼參數來選擇比較以下情況。If/else Rails尋找什麼?

我想鏈接到我的網站上的特定頁面,具體取決於使用哪個範圍來抓取我的主頁上顯示的數據。這可能嗎?

比如我有一個崗位和部門的模型,因爲這樣的關係

belongs_to :department 

belongs_to :post 

我通過一個範圍搶職位,然後有一種方法從其範圍抓住第一篇文章。

scope :tynewydd_posts, :include => :department, :conditions => {"departments.name" => "Ty Newydd"}, :order => "posts.published_on DESC" 
scope :woodside_posts, :include => :department, :conditions => {"departments.name" => "Woodside"}, :order => "posts.published_on DESC" 

然後顯示各

def self.top_posts 
#Array with each of the 4 departments - first record 
top_posts = [ 
    self.tynewydd_posts.first, 
    self.woodside_posts.first, 
    self.sandpiper_posts.first, 
    self.outreach_posts.first 
] 
#remove entry if nil 
top_posts.delete_if {|x| x==nil} 
return top_posts 
end 

在我看來,第一篇文章,然後我通過頂帖迭代

<% @toppost.each do |t| %> 
<%= link_to 'Read more' %> <!-- Want to put a helper method here --> 

<% end %> 

路線

/tynewyddnews #tynewydd_posts 
/woodsidenews #woodside_posts 

內@ toppost實例變量我有一個ttribute department.name可用,我通過我的.each循環中的t.department.name訪問。

我該怎麼去說「if @ toppost.department.name ==」xxxx「,然後link_to」/ path「例如,只是尋找一些關於結構的提示,或者如果這可以轉換爲case語句,那麼這將是更好的

感謝

+0

所以這是一個1:1的關係? – Zippie 2013-04-08 10:06:18

+0

hello again :),是的,我認爲我正確地設置了一個職位只能有一個部門和一個部門belongs_to一個職位 – Richlewis 2013-04-08 10:08:56

+0

然後糾正它,所以你可以有一個'has_one'和其他'belongs_to',這取決於你想要在哪裏存儲外鍵。通過這種方式(如果它工作正常),您可以存儲一個額外的外鍵。 – Zippie 2013-04-08 10:11:45

回答

1

你可以使用一個哈希,而不是一個數組,然後只返回的關鍵的,因爲你不會需要它們的值:

def self.top_posts 
    top_posts = { "tynewydd" => self.tynewydd_posts.first, 
       "woodside" => self.woodside_posts.first, 
       "sandpiper" => self.sandpiper_posts.first, 
       "outreach" => self.outreach_posts.first 
       } 
    top_posts.delete_if {|x| x.value==nil} 
    return top_posts.keys 
end 

現在你得到這樣的散列鍵數組: ["tynewydd","woodside",..]

而在你的看法:

<% @toppost.each do |t| %> 
     <%= link_to 'Read more', "#{t}news_path" %> 
<% end %> 
+0

道歉,所以我不需要做一個if語句呢?通過使用散列我可以只選擇鍵,它會鏈接到適當的路線?你還想看什麼?感謝您的方式 – Richlewis 2013-04-08 10:42:54

+0

好,你想顯示範圍的結果在頁面上你有所有這些鏈接?但是,是的,沒關係,這應該工作,自己嘗試一下.. – Zippie 2013-04-08 10:44:48

+0

該鏈接將帶我到該部門的所有職位的相關頁面,這足以實現我想要在這種情況下....通過使用散列我可以只選擇鍵,它會鏈接到適當的路線? – Richlewis 2013-04-08 10:46:49