2017-11-26 10 views
1

user.skypeidをhtml.erbのjavascriptコードparticipantsに渡そうとしています。それを行う正しい方法は何ですか?以下のアプローチは私のためには機能しません。html.erbのレールでjavascriptに値を渡す方法

<% @users.each do |user| %> 
<tr> 
    <td><%= user.name %></td> 
    <td><%= user.skypeid %></td> 
    <td><%= link_to 'Show', user_path(user) %></td> 
    <td> 
    <div id="SkypeButton_Call_aaa_1"> 
    <script type="text/javascript"> 
    Skype.ui({ 
    "name": "call", 
    "element": "SkypeButton_Call_aaa_1", 
    "participants": [user.skypeid] 
    }); 
    </script> 
    </div> 
    </td> 
</tr> 

答えて

1

あなたは、埋め込まれたルビーのようにそれを印刷し、引用符でそれをラップする必要があります。

<% @users.each do |user| %> 
    <tr class=""> 
    <td><%= user.name %></td> 
    <td><%= user.skypeid %></td> 
    <td><%= link_to 'Show', user_path(user) %></td> 
    <td> 
     <div id="SkypeButton_Call_aaa_1" data-skype="<%= user.skypeid %>"></div> 
    </td> 
    </tr> 
<% end %> 

<script type="text/javascript"> 
    let id = 'SkypeButton_Call_aaa_1' 
    let user = document.getElementById(id).dataset 
    Skype.ui({ 
    'name': 'call', 'element': id, 'participants': [user.skype] 
    }) 
</script> 
+0

でした:あなたはそれ外側または別のファイルにスクリプトを移動することもできますが

<% @users.each do |user| %> <tr> <td><%= user.name %></td> <td><%= user.skypeid %></td> <td><%= link_to 'Show', user_path(user) %></td> <td> <div id="SkypeButton_Call_aaa_1"> <script type="text/javascript"> Skype.ui({ "name": "call", "element": "SkypeButton_Call_aaa_1", "participants": ['<%= user.skypeid %>'] }); </script> </div> </td> </tr> <% end %> 

トリック!ありがとうございました –

+0

私はかなり新しいレールです。それは私が働いているバージョンを取得した後、私が次にやろうとしていたものです。その情報をあなたに加えてくれてうれしいです。再度、感謝します!間違いなくこの答えを受け入れます。 –

+0

私が持っている唯一の問題は、Skypeのボタンが同じ行に表示されていないことです。代わりに、ボタンはページの先頭に順に表示されます。どうやって同じ列に入れることができますか?ありがとう、 –

関連する問題