在 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)}}