在rails应用程序中调用url_for时阻止重定向

时间:2017-08-28 22:44:45

标签: ruby-on-rails ruby ruby-on-rails-3

我正在尝试将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是我的控制器中的一个函数,它以JSON格式返回一些数据。但是,当我导航到我的应用程序的索引页面时,浏览器只显示index_data的JSON输出。

我假设在index中调用url_for是将该页面重定向到index_data - 有没有办法防止这种情况,只是让url_for返回字符串,例如'/控制器/ index_data'?

由于

1 个答案:

答案 0 :(得分:1)

这可能是因为当你试图获取一个url时调用index_data动作,并且调用它会诱使Rails认为你想要从该动作渲染。

如果您将url_for更改为指向符号(或字符串)而不是操作的返回值,那么事情可能会按预期开始工作:

@locals = { ..., ajax: url_for(action: :index_data)}}