0

これは私の家のモデルの一部です。

class House < ActiveRecord::Base

    has_many :amenity_appartment
    has_many :amenities, :through => :amenity_appartment

    has_many :category_join_table
    has_many :categories, :through => :category_join_table

    has_one :price
end

リストに100を超える家があるので、フィルタリングを追加したいと思います。検索した後、私はそれを行うための素晴らしい方法を見つけました。http://www.webegg.co.uk/jquery-multiple-filter/

私は3つのフィルターオプションから始めたいです...価格、カテゴリー(国の家、ビラなど)、そしてアメニティ(食器洗い機、ベルタプなど)

テンプレートに家の関係からのデータ値を入力するだけです。

例:

#holderwrap
  %ul#holder.filterThis
   %li.1200.design-villa.dishwasher.barbecue.wifi

(週1200ユーロ-食器洗い機、バーベキュー、wifiの設備を備えたデザインヴィラ)

LIタグに値を入力するにはどうすればよいですか?

4

1 に答える 1

2

HAMLでは、ハッシュでhtmlクラスを渡すことができます。

%li{ :class => "1200 design-villa dishwasher barbecue wifi" }

アメニティ名を取得し、それらをそれぞれのhtmlクラスに変換し(必要な場合)、文字列に結合する必要があります。Houseおそらく、これをすべてインスタンスメソッドにパッケージ化できます。

def features_to_html_class
  "#{price} #{(amenities + categories).map(&:name).join(' ')}"
end

そしてあなたの見解では:

%li{ :class => house.features_to_html_class }
于 2012-10-22T21:49:18.533 に答える