2013-02-21 129 views
10

我需要將通知傳遞給控制器​​的視圖,並且我希望能夠創建一些鏈接到通知。在控制器中創建一個link_to

我的控制器:

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

有沒有什麼辦法,所以我可以做這樣的[rr.rr_id]將成爲一個鏈接,這樣當它在用戶點擊會去它的頁面?因爲如果放在控制器上,link_to將返回錯誤"undefined method"

謝謝。

回答

22

如果您使用的是導軌3,則可以在控制器中使用view_context.link_to(...)

UPDATE:與format.html代碼

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

爲什麼當我使用'view_context.link_to()'返回它自己的操作?給我'RR-1301-0001',但我需要'RR-1301-0001' – ksugiarto 2013-02-21 07:26:25

+0

這只是一個例子。你必須使用傳遞參數來link_to。例如,你想要的鏈接,你把它寫成'view_context.link_to('RR-1301-0001','/ receiving_record_headers/1')'。你可以,當然,使用命名路由的網址:) – jvnill 2013-02-21 07:34:32

+0

它做了先生,並且結果'PO已經有RR與RR ID:+「RR-1301-0001」+,無效RR第一.',哈哈我在哪裏錯誤?這是我的最後一個代碼'format.html {redirect_to purchase_order_headers_path,注意:'PO已經有RR和RR ID:'+ ActionController :: Base.helpers.link_to(rr.rr_id,receiving_record_header_path(rr.id))。html_safe +' ,首先無效RR。「 }' – ksugiarto 2013-02-21 07:51:48

5

使用#{ActionController::Base.helpers.link_to 'rr.rr_id', '/url'}.html_safe

爲了讓在控制器的鏈接。 要讓字符串顯示爲html(而不是轉義),請調用字符串上的html_safe方法

+0

我無法將其轉換爲HTML標籤先生,我混淆了它。對不起,我有些新手先生。無論如何感謝:) – ksugiarto 2013-02-21 07:48:57

+0

其實最後的結果,我試着'format.html {redirect_to purchase_order_headers_path,注意:'PO已經有RR與RR ID:'+ ActionController :: Base.helpers.link_to(rr.rr_id,receiving_record_header_path(rr .id))。html_safe +',首先void RR。' }'對html也有同樣的結果,比如我評論@jvnill的答案,我在哪裏錯誤? – ksugiarto 2013-02-21 07:53:43