2012-07-10 15 views
5

Bu yüzden, her birinin bir mesajı, her birinin, bu mesajın RATING değerini değiştiren (arındırılmış) bir bağlantıya sahip bir sayfam var. Bir kullanıcı bu bağlantıyı tıkladığında, o iletinin veritabanındaki karşılık gelen sütun değerini güncelleyen bir AJAX çağrısı istiyorum. Bu bağlantı tıklandığında, gözle görülür bir şey yapılmamalıdır. Sayfa yenileme veya yeniden yükleme olmamalıdır.Link_to uzaktan kumandayı kullanarak: parametreleri raylara iletmek için true

Bunu uzaktan bağlantı kullanarak yapmaya çalışıyorum: true, ancak işe yaramaya gelemiyorum. Bu belgedeki çevrimiçi belgeler oldukça açık değildir ve Rails 2 ve 3 arasındaki değişiklikler ile, bazı şeyler şu şekildedir: artık desteklenmemektedir.

Şimdiye kadar sahip olduğum şeyi kopyaladım, ama bir çözüm için yaklaşmaktan çok uzak olduğunu biliyorum. Veritabanına geçirdiğim parametreler açısından, profile_id, message_id ve new_rating'e ihtiyacım var.

Şimdiden teşekkürler!

show.html.haml

.status-bar 
    = link_to "", { action: :refine_result }, remote: true 

profile_controller.rb

... 

def refine_result 
    @refinement = ResultRefinement.new 
    @refinement.profile_id = params[:profile_id] 
    @refinement.message_id = params[:message_id] 

    @refinement.save 

    respond_to do |format| 
    format.html { render nothing: true } 
    format.js { render nothing: true } 
    end 
end 

result_refinement.rb İlk ProfileController#refine_result için bir yol kurmak gerekir

class ResultRefinement < ActiveRecord::Base 
    attr_accessible :profile_id, :message_id, :new_rating, :deleted 

    belongs_to :profile 
end 

cevap

6

.

match '/profile/refine_results' => 'profile#refine_results', :as => 'refine_results' 

gibi bir şey Sonra

.status-bar 
    = link_to "", refine_results_url(profile_id: 1, message_id: 100, new_rating: "awful"), remote: true 
+0

Müthiş kullanabilirsiniz. Parametreleri geçmeye ve onları veritabanına kaydetmeye başladım. Halen sahip olduğum tek sorun, sayfanın yönlendirilmesi veya değiştirilmesiyle ilgili durması. –

+0

Diğer bir js dosyası ajax'ın üzerine yazıyormuş gibi görünüyor. Bu yüzden ajax'ı devralmak yerine bağlantıyı takip ettim. –

İlgili konular