имам проблеми с моята заявка за 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 });