/ / rails ajax заявката не опреснява данните - ruby-on-rails, ajax, refresh

релсите ajax искане не обновява данните - руби-на-релси, ajax, опресняване

имам проблеми с моята заявка за ajax в приложение за релси.

правя заявка, вземам някои параметри от връзка, когато щракна, и след това искам да опресня частичното си, което съдържа изображения от моята база данни.

тук е моят ajax

    $.ajax({

url:"gallery",
data: { pie :categoria},
type: "GET",
async: true,
dataType: "script"


});

Работата е там, че в черупката на релсите ми се предават параметрите ми. но не прави промени в изгледа.


моята черупка:

Started GET "/gallery?pie=VibPellizcables&_=1375047201412" for 127.0.0.1 at Sun Jul 28 18:33:21 -0300 2013
Processing by GalleryController#pro as JS
Parameters: {"pie"=>"VibPellizcables", "_"=>"1375047201412"}
Product Load (0.1ms)  SELECT `products`.* FROM `products` WHERE `products`.`pie` = "VibPellizcables"
Rendered sexytoys/_algo.html.haml (0.1ms)
Completed 200 OK in 1ms (Views: 0.6ms | ActiveRecord: 0.1ms)

искам да актуализирам частично, което съдържа изображения от моята база данни.

това е частичното, което искам да актуализирам.

  #miniDiv

%ul#miniRecuadro
- @products.each do |product|
%li.mini= image_tag product.pic.url(:thumb)

моят контролер:

      def gallery
@products = Product.find(:all, :conditions => {:pie => params[:pie]})
#render :partial => "algo"
flash[:notice] = "Mensaje ENVIADO >>"
respond_to do |format|

format.js {render :partial => "algo", :conditions => {:pie => params[:pie]}}
# format.json { render :json => @products  }
end

Отговори:

3 за отговор № 1

Трябва да направите тази подмяна или в отговор, или при обратно извикване на AJAX:

Трябва да изобразите JS файл:

# app/controllers/gallery_controller.rb
def pro
...
respond_to do |format|
format.js # no render here
end
...
end

# app/views/gallery/pro.js.erb
$("#your-container").html("<%= j( render partial: "algo" )%>")

Не съм сигурен за този път, приложението ще се оплаче, ако този път е грешен, ще видите това в конзолата на браузъра, тъй като това е AJAX. Не знам за conditions опция се поддържа и с оглед.

Обратно обаждане прави заместване

$.ajax({

url:"gallery",
data: { pie :categoria},
type: "GET",
async: true,
success: function(response){
$("#your-container").html(response);
}


});

Забележка: премахнах dataType: "script" тук, тъй като не искате да изпълнявате отговор на сървъра.

В този случай можете да отговорите с този html, на който отговаряте:

# gallery_controller.rb
...
format.html {render :partial => "algo", :conditions => {:pie => params[:pie]}}
...

Забележка Промених формата на вашия отговор, тъй като рендирате html.

пряк път

И накрая, ако искате да заредите съдържание от вашия сървър в контейнер на вашата страница, може да се интересувате натоварване:

$("#your-container").load("gallery", { pie: categoria });