2013-02-21 15 views
10

Denetleyiciden bir görünüm için bir uyarı iletmem gerekiyor ve ayrıca bildirime bir bağlantı oluşturup oluşturmayacağımı istiyorum.denetleyicide bir link_to oluşturun

Benim denetleyicisi:

format.html { redirect_to purchase_order_headers_path, notice: 'PO already has RR with RR ID: ' + rr.rr_id + ', void RR first.' } 

herhangi öylesine yolu Üzerinde kullanıcı tıklama onu sayfasına gidecek o kadar [rr.rr_id] böylece bir bağlantı olacak yapabileceği var mı?, denetleyiciye koyarsa "undefined method" hata döndürecektir.

Teşekkürler. Rayları 3 kullanıyorsanız,

cevap

22

denetleyicinizde view_context.link_to(...) kullanabilirsiniz.

GÜNCELLEME: format.html koduyla

format.html do 
    redirect_to purchase_order_headers_path, notice: "PO already has RR with RR ID: #{view_context.link_to(rr.rr_id, receiving_record_header_path(rr.id))} void RR first.".html_safe 
end 
+0

dizesinde html_safe yöntemini çağırın. Neden view_context.link_to() işlevini kullandığımda, kendi eylemi döndürür? Bana RR-1301-0001 'ver, ancak sadece bir örnek olan RR-1301-0001 ' – ksugiarto

+0

olması gerekiyor. link_to'ya geçiş argümanlarını kullanmalısınız. Örneğin, istediğiniz bağlantıyı, bunu 'view_context.link_to (' RR-1301-0001 ','/recere_record_headers/1 ') 'olarak yazarsınız. Tabii ki, URL için adlandırılmış yollar kullanabilirsiniz :) – jvnill

+0

Bu bayım yapıldı ve "PO zaten RR ID ile RR ID var: +" RR-1301-0001 "+, geçersiz RR ilk., haha ​​nerede hata? Bu benim son kodum 'format.html {redirect_to purchase_order_headers_path, not: 'PO zaten RR ID'si olan RR'ye sahip:' + ActionController :: Base.helpers.link_to (rr.rr_id, receit_record_header_path (rr.id)) html_safe + ' , ilk önce RR geçersiz. } ' – ksugiarto

5

Kullanım #{ActionController::Base.helpers.link_to 'rr.rr_id', '/url'}.html_safe

denetleyicileri bağlantıyı yapmak için. Dize html olarak görüntülenmek için (atlanmak yerine)

+0

Bunu HTML olarak dönüştüremiyorum etiketi efendim, kafamı karıştırırım. Özür dilerim, yeni türden efendim. Yine de teşekkürler :) – ksugiarto

+0

Aslında format.html {redirect_to purchase_order_headers_path, uyarı ile çalıştığım son sonuç: 'PO zaten RR ID'si olan RR'ye sahip:' + ActionController :: Base.helpers.link_to (rr.rr_id, receive_record_header_path (rr) .id)). html_safe + ', önce RR geçersiz.' Ayrıca '' html ile aynı sonucu, Jvnill cevabı üzerinde yaptığım gibi, nerede hata yaparım? – ksugiarto