Rails, AJAX и jQuery ... просто добавить воды? - PullRequest
0 голосов
/ 30 июня 2010

Извините за глупость, но я не могу понять, как можно получить ruby ​​vars с помощью jQuery. Я сделал кнопку, которая с помощью json ВЫСТАВЛЯЕТ на сервер credit_status = 0. Но я бы хотел, чтобы 0 также автоматически обновлялось на странице.

My View:

HQ $
= organization.total_credit
= link_to 'redeem', redeem_admin_organization_path(organization), :class => 'button_short redeem live'

redeem.js:

== $("#organization_#{@organization.id} .redeem").html("#{escape_javascript(link_to('redeem', redeem_admin_organization_path(@organization), :class => 'button_short live redeem'))}");

контроллер (не уверен, если вам нужно это увидеть):

def redeem
  @organization = Organization.find(params[:id])
  users_who_promoted = CardSignup.find(:all).select {|c| c.store_id == @organization.id && c.credit_status == true}
  unless users_who_promoted.empty?
    users_who_promoted.update_all("credit_status","false")
  end
  @organization.update_attribute('total_credit', '0')
end

main.js:

$(".live").live("click", function() {
    $.ajax({type: "GET", url: $(this).attr("href"), dataType: "script"});
    return false;
});

Кто-нибудь знает, как нарисовать и обновить одну переменную на странице, используя jSon / jQuery / Rails? Есть ли действительно хороший ресурс для изучения этого?

1 Ответ

2 голосов
/ 30 июня 2010

приложение / контроллеры / vouchers_controller.rb

class VouchersController < ApplicationController # Just made up the name
  def redeem
    @organization = Organization.find(params[:organization_id])
    @organization.update_attribute('total_credit', 0)
    respond_to do |format|
      format.js
    end
  end
end

Приложение / просмотров / Ваучеры / redeem.js.erb

$("#organization_<%= @organization.id %> .redeem").html(
  "<%= escape_javascript(link_to('redeem', 
                                 redeem_admin_organization_path(@organization), 
                                 :class => 'button_short live redeem')) %>");

$(".total_credit").text( "<%= @organization.total_credit %>" );

Важно понимать, что redeem.js.erb - это просто еще один шаблон erb с тем же синтаксисом, что и в * .html.erb

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...