我在我的控制器中有一个动作,它将JSON渲染回客户端:
@data = [{label:"foo", url:"..."}, ...]
render :json => @data
基本上“数据”是一个对象数组,每个对象都有一个label和url属性。想要在服务器端生成URL,而不是将这些数据交给客户端,并让它迭代它以生成URL字符串。
如果我可以使用“link_to”方法,它将如下所示:
link_to“foo”,{:action => 'some_action',:foobar => {}}
基本链接到/ foobar / some_action
在控制器中生成URL的最佳方法是什么,因为我没有方便的“link_to”方法?
答案 0 :(得分:5)
检查方法ActionController::Base#url_for
对于Rails 3,请参阅ActionDispatch::Routing::UrlFor#url_for
答案 1 :(得分:3)
您可以在控制器中包含视图助手方法,就像任何其他模块一样,这些方法将可用:
class MyController < ApplicationController
include ActionView::Helpers::UrlHelper
def ajax_method
link_to "foo", {:action => 'some_action', :foobar => {}}
end
end