30562


**前提・実現したいこと**  
画像をリンクにしたい。

**発生している問題・エラーメッセージ**

[code]

    We're sorry, but something went wrong.
    
[/code]

**該当のソースコード**

[code]

    <%= link_to (image_tag(’/uploads/user/image/4/#{@user.image}’, { :border => ‘0’, :alt => ‘新規登録’}), current_user) %>
    
[/code]

エディタ内では、#以降の色が変わり、アプリを起動するとエラーになります…

ちなみにこっちではエラーは起きていません。

[code]

    <%= image_tag "/uploads/user/image/4/#{@user.image}" %>
    
[/code]

マルチポスト  
<https://teratail.com/questions/55772?modal=q-comp>


CC BY-SA 3.0
2016-11-19T04:08:35.870
30523
2017-03-17T02:28:06.970
2016-11-20T16:17:41.737
2238
19459
question
ruby-on-rails
image_tagとlink_toの組み合わせでエラーが起きます


自己解決。  
(正確にはteratailでginさんから回答を受けました。)

【いただいた解答】  
Rubyのことは分からないですが、依頼をもらったので気付いた点でもｗ  
該当のソースコードのシングルコーテーション全角なんですけど、これってRubyではOKなんですか？

【補足】  
ちなみにシングルクォーテーションに直したらまた違う問題が起きたので、ついでに載せておきます。

最終的に画像をリンクにできたのはこのコードです。

[code]

    <%= link_to current_user do %>
    <%= image_tag "/uploads/user/image/4/#{@user.image}" %>
    <% end %>
    
[/code]

シングルクォーテーションを半角に直しても、画像が表示されませんでした。

[code]

     <%= link_to image_tag('/uploads/user/image/4/#{@user.image}', { :border => '0', :alt => '新規登録'}), current_user %>
    
[/code]

原因はわからないです…


CC BY-SA 3.0
2016-11-19T04:39:02.567
30528
2016-11-19T07:10:51.603
2016-11-19T07:10:51.603
19459
19459
30523
answer


> シングルクォーテーションを半角に直しても、画像が表示されませんでした。
[code]

>     <%= link_to image_tag('/uploads/user/image/4/#{@user.image}', {
>     :border => '0', :alt => '新規登録'}), current_user %>
>  
[/code]

>
> 原因はわからないです…

Rubyの文字列リテラルでは、ダブルクォーテーションでは式展開が行われ、シングルクォーテーションでは行われないためではないでしょうか。

<https://docs.ruby-lang.org/ja/latest/doc/spec=2fliteral.html#exp>


CC BY-SA 3.0
2016-11-21T00:43:30.853
30562
2016-11-21T00:43:30.853
2376
30523
answer


`#{}` はシングルクォーテーション内では利用できません。  
ダブルクォート内でのみ利用できます。

<http://railsdoc.com/ruby_base>

> ダブルクォート内の、「＃｛｝」は、式として評価された値が展開


CC BY-SA 3.0
2017-03-17T02:28:06.970
33374
2017-03-17T02:28:06.970
21088
30523
answer