2012-03-11 10 views
1

Rails + HAMLについての私の質問についてRails:条件付きでHTMLタグにCLASS属性を設定する

条件付きでHTMLタグにクラス属性を設定したいと思います。これを行う最良の方法は、適切なHTMLタグのクラスを設定するために使用されるコントローラ変数を設定することです。

Google検索で見つかった唯一の解決策は、HAMLで条件付きを使用するように指示します。しかし、私はこれが最良のアプローチだとは思わない、なぜならViewsはいかなる論理制御も持たないからだ。

コントローラから直接これを行うにはどうすればよいですか? htmlタグのクラスを設定できるコントローラー変数はどれですか?

答えて

1

実際、Hamlはビューでロジックを使用しないようにして、代わりにヘルパーを作成することができます。そのため、1つの解決策は、ロジックを内部に持つヘルパーメソッドを作成することです。

コントローラからHTMLマークアップを制御することはできません。この目的のためのビューは、コントローラにはありません。 別のヘルパーを作成したくない場合は(必要以上のものです)、レールに付属の既存のtagヘルパーを使用してください。必要に応じてコントローラから初期化できるオプションのハッシュを受け取ります。

もう一度、私は助けに行くだろう。あなたは文字列としてクラス属性値を公開haml_tagを使用することができます(クラスの設定のような)単純な論理のために

0

hamlテンプレートにロジックを入れたくない場合は、そのテンプレートをヘルパーに移動する必要があります。コントローラーが特定のhtmlタグのクラスを設定する方法は本当にありません。それはコントローラのためのものではありません。

1

- haml_tag :th, class: "#{'hilite' if params[:order_by]=='title'}" do 
    - haml_concat link_to 'Movie Title', movies_path(order_by: 'title') 

それでもビューで条件付きロジックを持っているが、この場合にはヘルパーに頼るこの方法過度のものかもしれない。

関連する問題