2013-02-21 127 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