0

だから私は単純なことをしようとしていますが、私の本や簡単にグーグルで解決策を見つけることができないようです.

<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

このコードが明らかに間違っていることはわかっています。ここで何が間違っているのか教えてください。ユーザーが購読していない場合は購読するオプションをユーザーに提供したいと思います。

jQuery ステートメントの html 部分に link_to を入れる必要がありますか? 唯一の問題は、これが機能するかどうかを確認するためにこれを試しても、ajax 呼び出しから更新されたテキストを取得していないことです。サーバーは、subscriptions/create.js.erb をレンダリングし、データベースが適切に更新されていることを示しています

4

2 に答える 2

0

解決策: views/subscriptions/create.js.erb および destroy.js.erb 内

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

破壊のために変更すると、そこにあります!

于 2012-05-16T03:44:05.370 に答える
0

コントローラーに問題があるようです。コントローラーが見えるかもしれません... Webkit ツールの Firebug を使用している場合、エラーは発生しますか?

ruby と javascript が混在しているため、JavaScript が間違っています。

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

is_subscribed メソッドは、モデル内に配置する方が適切であり、セッションを使用するよりもモデルの属性を照会する方が適切です。ただし、これは単なる推奨事項です。私はis_subscribedだと思いますか?ヘルパーで定義されていますか?

申し訳ありませんが、現時点ではこれ以上お手伝いできません

于 2012-05-13T18:08:44.170 に答える