2016-09-08 4 views
0

Rails 4.2とDraper gemを使用しています。 私はデコレータがありますRailsはhtmlコンポーネントにリンクを挿入します

def status_link 
    if enabled? 
     h.link_to 'Disable', h.disable_company_path(id), data: {confirm: 'Are you sure?'}, method: :put, remote: true 
    else 
     h.link_to 'Enable', h.enable_company_path(id), method: :put, remote: true 
    end 
    end 

が、私はjsのビュー内のリンクをレンダリングします:

var cell = $("#my-id"); 
cell.html(<%= @my_model.decorate.status_link %>); 

をしかし、リンクをセルに注入されていません。セルは空です。

私はコンソールにそれが動作status_link方法印刷する場合:私はそれが動作する整数を注入しようとした場合

<%= pp @my_model.decorate.status_link %> 
"<a data-confirm=\"Are you sure?\" data-remote=\"true\" rel=\"nofollow\" data-method=\"put\" href=\"/companies/210/disable\">Disable</a>" 

を:

cell.html(<%= @my_model.id %>); 

をまた、私は二重引用符を使用しようとしている。

cell.html("<%= @my_model.decorate.status_link %>"); 

しかし、結果は同じです。ブラウザコンソールでコードを検査しようとしましたが、エラーは表示されません。

整数が正常に動作している間にリンクが挿入されないのはなぜですか?

+1

ブラウザのコンソールを確認すると、JSエラーが表示されます。また、そのajax呼び出しの応答を検査します。無効なjavascriptが含まれています。 –

+0

ヒント:引用符が必要です。 –

+0

二重引用符で囲まれた..だけでは動作しません – user1066183

答えて

1

以下は無効です。

cell.html("<%= @my_model.decorate.status_link %>"); 

ここでお持ち帰りポイントは、この特定のエラーを記憶するのではなく、するべきではありません:あなたはすなわち、文字列でJavaScript関数を呼び出す必要が

cell.html(<%= @my_model.decorate.status_link %>); 

あなたのコードをデバッグする方法を学ぶ。

アプリケーションの関連ページに移動し、ブラウザコンソールを開きます。ここでは、ページの更新やボタンのクリックなど、javascriptをトリガーするアクションを実行します。ログにエラーが表示されます。このような何か: - すなわち、あなたのケースでは、cell.html(<%=....コード

Console error

また、これは、エラーの発生したコード行へのリンクが含まれています。

+0

私は検査するようにしました:エラーはありません。私も二重引用符を使用しましたが、結果は同じです – user1066183

+0

私は単一引用符を使用して動作しています – user1066183

関連する問題