在 rails 应用中调用 url_for 时防止重定向
Prevent redirect when calling url_for in a rails app
我正在尝试将 url 字符串从我的控制器方法之一传递到视图,如下所示:
def index
@locals = {table_cols: $config['global_fields'],
table_title: $config['main_page']['table_title'],
ajax: url_for(action: index_data)}} # HERE
end
index_data 是我控制器中的一个函数,它 return 以 JSON 格式发送一些数据。但是,当我导航到我的应用程序的索引页面时,浏览器只显示 index_data 的 JSON 输出。
我假设在索引中调用 url_for 将该页面重定向到 index_data - 有没有办法防止这种情况并且只有 url_for return 字符串,例如'/controller/index_data'?
谢谢
这可能是因为您在尝试获取 url 时调用了 index_data
操作,并且调用它是在欺骗 Rails 认为您要从中进行渲染动作。
如果您将 url_for
更改为指向符号(或字符串)而不是操作的 return 值,事情可能会按您预期的那样开始工作:
@locals = { ..., ajax: url_for(action: :index_data)}}
我正在尝试将 url 字符串从我的控制器方法之一传递到视图,如下所示:
def index
@locals = {table_cols: $config['global_fields'],
table_title: $config['main_page']['table_title'],
ajax: url_for(action: index_data)}} # HERE
end
index_data 是我控制器中的一个函数,它 return 以 JSON 格式发送一些数据。但是,当我导航到我的应用程序的索引页面时,浏览器只显示 index_data 的 JSON 输出。
我假设在索引中调用 url_for 将该页面重定向到 index_data - 有没有办法防止这种情况并且只有 url_for return 字符串,例如'/controller/index_data'?
谢谢
这可能是因为您在尝试获取 url 时调用了 index_data
操作,并且调用它是在欺骗 Rails 认为您要从中进行渲染动作。
如果您将 url_for
更改为指向符号(或字符串)而不是操作的 return 值,事情可能会按您预期的那样开始工作:
@locals = { ..., ajax: url_for(action: :index_data)}}