2017-08-14 5 views
1

私はそれを使用しました。以下のコード私はlink_toのruby構文について興味があります

<%= link_to user.nickname, conversations_path(user_id: user), remote: true, method: :post %> 

私はuser.nicknameをdbで定義されたニックネームメソッドで表現しました。 しかし私が知っているlink_to構文は 'name'、urlです。 最初のコードは ''なしのuser.nicknameでどのように表現できますか? 最初のコードに表示されるテキストを変更したいが、user.nicknameは ''で表されていないため別のものに変更することはできません。 私はそれを私が知っている文法のように使うことができますか?

+0

私はあなたの質問を理解していません。そのコードは機能しますか?もしそうなら、あなたの質問は何ですか?そうでない場合、エラーや予期しない結果が出ますか?あなたの希望する出力は何ですか? – Stefan

+0

構文が不明な場合は、ドキュメントが役立ちます。 ['ActionView :: Helpers :: UrlHelpers#link_to'](http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to) – engineersmnky

答えて

4

link_toの最初のパラメータは文字列です。文字列がどこから来るかは問題ではありません。それは私が

だからとuser.nicknameを置き換える最初のコードに表示されるテキストを変更したい

link_to "Joe", ... 

リテラル文字列を、ユーザのオブジェクト

link_to user.nickname, ... 

から来るかすることができあなたがそこで使用したいものは何でも。しかし文字列リテラルを使用すると、すべてのユーザーで同じになります。

たとえば、すべてのニックネームに静的な文字列を追加する場合は、文字列連結を使用できます。

link_to user.nickname + " (new)" 

または文字列補間

link_to "#{user.nickname} (new)" 

これらの異なる方法は非常によく、今あなたに不可解な直感呪文のように見えますが、時に「構文の作品」と「値の差を理解しますそれはあなたの頭の中の「クリック」を表しています。

+0

user.nicknameでテキストを追加する方法? –

+0

@김相加文字列補間を使うことができます。回答は –

+1

@SebastiánMezaを参照してください:補間例_after_その質問:) –

関連する問題