2012-11-11 56 views
0

房子模型在軌方法,每個循環

class House < ActiveRecord::Base 
    has_many :categories, :through => :category_join_table 

def features_to_html_class 
    "#{price} #{rooms} #{guests} #{{categories.name do |cat| cat.name}}" 
end 
end 

衆議院指數模板

- @houses.each do |house| 
    .item{:class => house.features_to_html_class } 

值的價格,客房,客人正確的觀點(過濾目的)解析,而不是類別。我做錯了什麼?

+0

請[不簽名或標語添加到您的帖子(HTTP: //stackoverflow.com/faq#signatures) – meagar

回答

2

試試這個:

categories.map{|cat|cat.name|}.join(' ') 
+0

太棒了!完美的作品 – Remco

2

如果存在空格,則不希望多個類具有相同的類別名稱。

Top Articles 
Articles 

將產生:

class="Top Articles Articles" 

你可以走得更遠了一步,用破折號代替空格和downcase這一切:

"#{ categories.map{ |cat| cat.name.parameterize }" 

class="top-articles articles" 

編輯:

安東尼指出在評論中,如果你使用的是Rails,你可以使用parameterize

+0

或使用'String#parameterize'將字符串轉換爲標準化表示 –

0

你應該通過每名categori迭代,所以你需要使用:

{categories.name.each { |cat| cat.name}} 
+0

categories.name肯定會引發NoMethod錯誤。而'each'方法將返回原始數組對象。您應該使用地圖。在irb控制檯上自己嘗試一下。 – nicooga