2013-02-21 2 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()' return, это собственное действие? дайте мне 'RR-1301-0001', но мне нужно быть 'RR-1301-0001' – ksugiarto

+0

, что было просто примером. вы должны использовать аргументы pass для link_to. например, эта ссылка, которую вы хотите, вы пишете как «view_context.link_to» («RR-1301-0001», «/ receive_record_headers/1») '. вы можете, конечно, использовать именованные маршруты для url :) – jvnill

+0

Это сделано сэр, и результат 'PO уже имеет RR с RR ID: +" RR-1301-0001 "+, void RR first.', ха-ха, где я ошибаюсь? Это мой последний код 'format.html {redirect_to purchase_order_headers_path, обратите внимание:« У PO уже есть RR с идентификатором RR: «+ ActionController :: Base.helpers.link_to (rr.rr_id, receive_record_header_path (rr.id)). Html_safe + , сначала void RR. ' } ' – ksugiarto

5

Использование #{ActionController::Base.helpers.link_to 'rr.rr_id', '/url'}.html_safe

Чтобы сделать ссылку в контроллерах. Чтобы строка отображалась как html (вместо экранирования), вызовите метод html_safe в строке

+0

Я не могу преобразовать это как HTML tag sir, я путаю тогда об этом. Извините, я как бы рельс новичок сэр. Спасибо в любом случае :) – ksugiarto

+0

Фактически конечный результат, который я пытаюсь использовать с 'format.html {redirect_to purchase_order_headers_path, обратите внимание:« У ПО уже есть RR с идентификатором RR: «+ ActionController :: Base.helpers.link_to (rr.rr_id, receive_record_header_path (rr) .id)). html_safe + ', void RR first.' } 'также тот же результат на html, как то, что я комментирую на @jvnill answer, где я ошибаюсь? – ksugiarto