我有這樣的代碼在Rails視圖從JS查看「在我的控制器中。此方法將更新數據庫,並設置一個實例變量@newstate =「FAV」更新的Rails使用遠程=真
在make_fav.js.erb我可以看到,這個實例變量被設置
<% puts "Newstate is #{@newstate}" %>
在我index.html.erb
,我有
<td id='<%= "favourite-#{product.id}" %>' >
<% if current_user.products.exists?(product.id) %>
<i class="fa fa-star" %></i>
<% else %>
<i class="fa fa-star-o" %></i>
<% end %>
</td>
現在我應該如何(在make_fav.js.erb)更新ID的TD 「最愛 - #{} product.id」,以反映@newstate變量?
我曾嘗試之類的東西
<% @key = "#favourite-#{@product.id}" %>
<% x = "<i class='fa fa-star' id='favourite-#{@product.id}></i>" %>
$('<%= @key %>').html("<%= escape_javascript (x) %>");
但你可以看到,我在當它涉及到JavaScript中的損失......
基本上,我要更新的內容
<i class="fa fa-star" %></i>
如果@newstate是 「我的最愛」,以及其他
<i class="fa fa-star-o" %></i>
我覺得我很近,但會很感激任何幫助!
此外,如果有更好的/更「高尚的」做法,我想聽聽它。
謝謝!我對js/jquery的經驗不足讓我忘記了addClass/removeClass角度! –
而且,具體來說,在index.html.erb中,我對產品進行循環,並根據「current_user.products.exists?(product.id)」設置類,但我在Ruby代碼中執行此操作,並且不是JS。爲了避免重複,是否有任何方法可以使用相同的代碼進行初始更新(現在是以紅寶石形式呈現的服務器)以及客戶端中的JS回調代碼?我正在考慮編寫一個可以被兩個人使用的JS函數,但它不知何故感覺我正在過度使用它,然後...... –