0

これはかなり単純なはずですが、ruby、haml、railsは初めてです。

特定の弁護士のために、場所のリストを表示したいと思います。それらを`to_sentence'に変換したいので、最後を除くすべての場所の後にコンマがあります。

これは私が見ているshow.html.hamlものです。

%ul
- @lawyers.each do |lawyer|
  - if lawyer == @lawyer
    %li.active
      %article
        %h3= lawyer.full_name
        - unless lawyer.phone.nil?
          .phone== Direct #{lawyer.phone}
        .email
          = mail_to lawyer.email, lawyer.email
        - unless @lawyer.office_locations.empty?
          - if @lawyer.office_locations.count > 1
            .locations_list
              %ul
                %li Locations:
                - @lawyer.office_locations.each do |office_location|
                  %li.locations== #{office_location.city}
          - else
            .locations_list
              %ul
                %li Location:
                - lawyer.office_locations.each do |office_location|
                  %li== #{office_location.city}

編集:これは私が試したものです。

        - unless @lawyer.office_locations.empty?
          - if @lawyer.office_locations.count > 1
            .locations_list
              %ul
                %li Locations:
                %li== lawyer.office_locations.collect{ |p| "#{p.office_locations.city}"}.to_sentence

それが違うかどうかはわかりませんが、lawyer2つの別々のoffice_locationモデルであり、どちらもHABTMです。

これが間違った方法であることは知っていますが、うまくいかないようto_senteceです.pluralize。この投稿の回答を使用してみました。RubyonRailsはlink_toによって作成されたhtmlを自動エスケープしているようですが、機能させることができませんでした。

このロジックをヘルパーに入れたいと思いますか?どんな助けでもいただければ幸いです。

4

1 に答える 1

2

この行には問題があります:

%li== lawyer.office_locations.collect{ |p| "#{p.office_locations.city}"}.to_sentence

あなたは関係から.office_locationsそれぞれを呼んでいます。ブロックをにしたいと思います。plawyer.office_locations{ |p| "#{p.city}"}

「Location/s」を複数形にする場合は、引数を指定して複数形メソッドを呼び出すことができます。 "Location".pluralize(1)「Location」を返し、 "Location".pluralize(2)(または1より大きいもの)は「Locations」を返します。したがって、これをテンプレートに追加できます。

%li= "Location".pluralize(lawyer.office_locations.count)
于 2013-03-04T19:38:09.183 に答える