2016-11-10 58 views
-1

我想在用戶點擊一個鏈接後打印一個flash消息,如下面的js.erb文件所示。如何把javascript嵌入到ruby中?

$('a').click(function(){ 
      <% flash.now[:alert]= "Successfully added "%> this.innerHTML <% "to cart" %> 
     }) 

我想閃光燈消息說​​「成功添加(無論是點擊)到購物車」我有麻煩,因爲它好像我有嵌入的JavaScript到嵌入式紅寶石。

+0

我假設你正在進行Ajax調用以將項目添加到購物車,並且在ajax成功後你想顯示flash消息?我想你會在這裏找到你的答案http://stackoverflow.com/questions/21032465/rails-doesnt-display-flash-messages-after-ajax-call – Satendra

回答

0

看來你對ERB的工作方式有誤解。將ruby代碼添加到ERB文件時,它會在服務器上運行,並將輸出插入到發送給客戶端的純HTML中。所以你的代碼是在服務器上運行ruby flash.new[:alert] = "Successfully added""to cart"。和HTML一起發送給客戶端的Javascript函數是:

$('a').click(function(){ 
    this.innerHTML 
}) 

哪個顯然不會做任何事情。你可能想要做的是從javascript函數發送一個AJAX請求到,然後在收到這個請求後運行你的ruby代碼。

我敢肯定,這最後一段看起來像你的行話,但希望這會給你一些谷歌搜索彈藥。你對Erb的工作方式以及Flash的工作原理有很多誤解,對於那些沒有我現在無法真正瞭解的巨大文章,我不能真正幫助你。祝你好運谷歌!