0

ユーザーが持っているライセンスを次のようなコードで一覧表示しようとすると、Rails アプリでモデルが関連付けられる方法

Licensed in <%= answer.user.licenses.map(&:state) %>

このように出力されます

Licensed in ["New York"] 

配列なので、このように配列ブラケットを削除できます

<%= answer.user.licenses.map(&:state)[0] %>

そして私は私が望む結果を得る

Licensed in New York

ただし、ユーザーが複数のライセンスを持っている場合 (可能性はあります)、各ライセンスをリストする必要があるため、これは適切な解決策ではありません。

したがって、私はこれを試しました

   <% answer.user.licenses.map(&:state).each do |state| %>
    <%= state %>
   <% end %>

ただし、これはライセンス間に「スマートな」コンマを追加しません。スマートな意味は、「必要に応じてコメントを追加しますが、最後には追加しないでください」です。

この状況で私がやろうとしていることを達成するために、コードはどのように見えるべきですか。これを理解するためにグーグルで検索する必要があるキーワードがわかりませんでした。

4

2 に答える 2

4

これを試して

answer.user.licenses.map(&:state).join(',')

これ,により、配列の各要素の間に追加されます。

于 2013-04-20T23:27:48.853 に答える
4

Rails では、 を使用できますto_sentence。これ,により、すべての要素の間にa が配置さandれ、最後から 2 番目と最後の単語の間に単語が配置されます。

于 2013-04-20T23:29:36.460 に答える