【问题标题】:Rails :respond_to javascriptRails :respond_to javascript
【发布时间】:2014-02-13 23:52:37
【问题描述】:

这是我的看法:(show.html.erb)

 <%=link_to vote_for, vote_for_question_path(@question), :remote => true%>

这是链接在 question_controller 中调用的操作:

def vote_for
        @quest_vote_for = Question.find(params[:id])
        current_user.vote_exclusively_for(@quest_vote_for)

       @total_vote = current_user.total_votes
        respond_to do |format|
        format.js{}
        format.html
        end
    end

我想要的是在单击链接后更新 show.html.erb 的内容。 (我正在使用 ajax (remote=&gt;true))。 show.html.page 应该使用@total_vote 的新值更新自身。

我该怎么做?

【问题讨论】:

    标签: ruby-on-rails ajax ruby-on-rails-3 ruby-on-rails-4


    【解决方案1】:

    添加 vote_for.js.erb,然后将以下内容添加到您的文件中:

    $("body").prepend("<h1><%= @total_vote %></h1>")
    

    【讨论】:

    • 但我应该将 $(''body'') 替换为标识我想要放置文本的区域的选择器,对吧?
    • 是的,你可以这样做:$('div#total_vote').html('&lt;%= @total_vote %&gt;')
    • 另外,您必须只保留格式 .js {} 并删除带有 format.html 的行,否则会尝试加载 vote_for.html 视图。
    • 如果 js 被禁用,你想捕捉 HTML 怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    • 1970-01-01
    相关资源
    最近更新 更多