2012-05-13 33 views
0

所以我只是想做一些簡單的事情,但我似乎無法在我的書中找到任何解決方案或輕鬆使用Google搜索。Rails,AJAX:根據之前點擊的鏈接呈現新的link_to

<div id="subscribe"> 
<% if session[:read_random] 
    unless is_subscribed?(session[:read_random].last)%> 
      <%= link_to 'Subscribe', subscriptions_path(feed_id: session[:read_random].last), method: :post, remote: :true %> 

    <% else %> 
     <%= link_to 'Unsubscribe', subscriptions_path(feed_id: session[:read_random].last), method: :delete, remote: :true %> 

<% end 
    end %> 
</div> 

和我create.js.erb是:

if is_subscribed?(session[:read].last) 
    $('#subscribe').html("Unsubscribe"); 
else 
    $('#subscribe').html("Subscribe"); 
end 

,所以我知道這個代碼顯然是錯誤的,只是請告訴我,我做錯了什麼在這裏,我想給如果用戶沒有訂閱,則用戶選擇訂閱,如果訂閱不存在則反之。

我需要將link_to放入jQuery語句的html部分嗎?唯一的問題是,我雖然會試着看看它是否有效,我甚至沒有從ajax調用中獲得任何更新的文本。服務器說它已經呈現訂閱/ create.js.erb並且數據庫正在被適當更新

回答

0

解決方案:在視圖/訂閱/ create.js.erb和destroy.js.erb

$('#subscribe').html("<%=j link_to 'Unsubscribe', subscriptions_path(feed_id: session[:read_random].last), method: :delete, remote: :true %>"); 

改變的破壞和你有它!

0

聽起來像控制器存在問題。也許我們可以看到控制器......如果您使用Webkit工具的Firebug,您是否會收到任何錯誤?

<% if is_subscribed?(session[:read].last) %> 
    $('#subscribe').html("Unsubscribe"); 
<% else %> 
    $('#subscribe').html("Subscribe"); 
<% end %> 

你is_subscribed方法將在模型中得到更好的地方,倒不如查詢模型屬性,而不是使用會話:因爲它是混合紅寶石和JavaScript

JavaScript是錯誤的。但這只是一個建議。我認爲是預訂?在助手中定義?

對不起,我不能幫助更多的在這個時候