2013-04-14 104 views
1

所以我有一个问题,我有这个索引操作应该返回json,但在浏览器中我总是得到一个空的响应。Rails索引操作总是返回空

控制器

class Admin::Groups::UsersController < Admin::GroupsController 
    def index 
    @user_groups = Group.includes(:group_type, :users).where("group_types.group_type_name = ?", 'Users').order("groups.group_name ASC") 

    render json: @user_groups.to_json(:include => [:group_type, :users], :methods => :enabled) 
    end 

    def show 
    @user_group = Group.includes(:group_type, :users).where("group_types.group_type_name = ?", 'Users').find_by_id(params[:id]) 

    render json: @user_group.to_json(:include => [:group_type, :users], :methods => :enabled) 
    end 
end 

路由文件

namespace :admin do 
    namespace :groups do 
    resources :users, only: [:index, :show] do 
     get 'enabled', :on => :collection 
     get 'disabled', :on => :collection 
    end 
    end 
end 

输出耙路线

admin_groups_users GET /admin/groups/users(.:format)     admin/groups/users#index 

什么是真的抛出我的是,当我运行轨道控制台中索引操作内部的相同代码时,它正在输出与我的预期完全相同的内容。此外,演出活动正常。只是为了测试,我添加了一个新路线,我只是称其为index2,并将index动作中的代码复制+粘贴到index2,并且我在浏览器中获得了正确的输出。

所以它必须与我的路线有关,但我不确定它是什么?

编辑:添加耙路线的整个输出

enabled_admin_accounts GET /admin/accounts/enabled(.:format)    admin/accounts#enabled 

disabled_admin_accounts GET /admin/accounts/disabled(.:format)    admin/accounts#disabled 

account_owners_admin_accounts GET /admin/accounts/account_owners(.:format) admin/accounts#account_owners 

admin_accounts GET /admin/accounts(.:format)      admin/accounts#index 

admin_account GET /admin/accounts/:id(.:format)     admin/accounts#show 

enabled_admin_users GET /admin/users/enabled(.:format)     admin/users#enabled 

disabled_admin_users GET /admin/users/disabled(.:format)     admin/users#disabled 

admin_users GET /admin/users(.:format)       admin/users#index 

admin_user GET /admin/users/:id(.:format)      admin/users#show 
enabled_admin_owners GET /admin/owners/enabled(.:format)     admin/owners#enabled 

disabled_admin_owners GET /admin/owners/disabled(.:format)    admin/owners#disabled 

currencies_admin_owner GET /admin/owners/:id/currencies(.:format)   admin/owners#currencies 

admin_owners GET /admin/owners(.:format)       admin/owners#index 

admin_owner GET /admin/owners/:id(.:format)      admin/owners#show 

enabled_admin_counterparties GET /admin/counterparties/enabled(.:format)   admin/counterparties#enabled 

disabled_admin_counterparties GET /admin/counterparties/disabled(.:format)  admin/counterparties#disabled 

admin_counterparties GET /admin/counterparties(.:format)     admin/counterparties#index 

admin_counterparty GET /admin/counterparties/:id(.:format)    admin/counterparties#show 

enabled_admin_venues GET /admin/venues/enabled(.:format)     admin/venues#enabled 

disabled_admin_venues GET /admin/venues/disabled(.:format)    admin/venues#disabled 

admin_venues GET /admin/venues(.:format)       admin/venues#index 

admin_venue GET /admin/venues/:id(.:format)      admin/venues#show 

enabled_admin_custody_banks GET /admin/custody_banks/enabled(.:format)   admin/custody_banks#enabled 

disabled_admin_custody_banks GET /admin/custody_banks/disabled(.:format)   admin/custody_banks#disabled 

admin_custody_banks GET /admin/custody_banks(.:format)     admin/custody_banks#index 

admin_custody_bank GET /admin/custody_banks/:id(.:format)    admin/custody_banks#show 

enabled_admin_client_currencies GET /admin/client_currencies/enabled(.:format)  admin/client_currencies#enabled 

disabled_admin_client_currencies GET /admin/client_currencies/disabled(.:format)  admin/client_currencies#disabled 

admin_client_currencies GET /admin/client_currencies(.:format)    admin/client_currencies#index 

admin_client_currency GET /admin/client_currencies/:id(.:format)   admin/client_currencies#show 

admin_currencies  /admin/currencies(.:format)      admin/client_currencies#index 

admin_all_currencies  /admin/all_currencies(.:format)     admin/currencies#index 

enabled_admin_groups GET /admin/groups/enabled(.:format)     admin/groups#enabled 

disabled_admin_groups GET /admin/groups/disabled(.:format)    admin/groups#disabled 

admin_groups GET /admin/groups(.:format)       admin/groups#index 

admin_group GET /admin/groups/:id(.:format)      admin/groups#show 

enabled_admin_groups_accounts GET /admin/groups/accounts/enabled(.:format)  admin/groups/accounts#enabled 

disabled_admin_groups_accounts GET /admin/groups/accounts/disabled(.:format)  admin/groups/accounts#disabled 

admin_groups_accounts GET /admin/groups/accounts(.:format)    admin/groups/accounts#index 

admin_groups_account GET /admin/groups/accounts/:id(.:format)   admin/groups/accounts#show 

enabled_admin_groups_account_owners GET /admin/groups/account_owners/enabled(.:format) admin/groups/account_owners#enabled 

disabled_admin_groups_account_owners GET /admin/groups/account_owners/disabled(.:format) admin/groups/account_owners#disabled 

admin_groups_account_owners GET /admin/groups/account_owners(.:format)   admin/groups/account_owners#index 

admin_groups_account_owner GET /admin/groups/account_owners/:id(.:format)  admin/groups/account_owners#show 

enabled_admin_groups_users GET /admin/groups/users/enabled(.:format)   admin/groups/users#enabled 

disabled_admin_groups_users GET /admin/groups/users/disabled(.:format)   admin/groups/users#disabled 

admin_groups_users GET /admin/groups/users(.:format)     admin/groups/users#index 

admin_groups_user GET /admin/groups/users/:id(.:format)    admin/groups/users#show 

enabled_admin_groups_counterparties GET /admin/groups/counterparties/enabled(.:format) admin/groups/counterparties#enabled 

disabled_admin_groups_counterparties GET /admin/groups/counterparties/disabled(.:format) admin/groups/counterparties#disabled 

admin_groups_counterparties GET /admin/groups/counterparties(.:format)   admin/groups/counterparties#index 

admin_groups_counterparty GET /admin/groups/counterparties/:id(.:format)  admin/groups/counterparties#show 

enabled_admin_groups_currencies GET /admin/groups/currencies/enabled(.:format)  admin/groups/currencies#enabled 

disabled_admin_groups_currencies GET /admin/groups/currencies/disabled(.:format)  admin/groups/currencies#disabled 

admin_groups_currencies GET /admin/groups/currencies(.:format)    admin/groups/currencies#index 

admin_groups_currency GET /admin/groups/currencies/:id(.:format)   admin/groups/currencies#show 

root  /            trades#index 

jasminerice  /jasmine          Jasminerice::Engine 
+0

resources:users,:only => [:index,:show],:collection => {:enabled =>:get,:prepare =>:get}你能改变你的路由并检查它是否为工作 – suman

回答

2

您需要将此路线沿路线列表进一步移动。

admin_group GET /admin/groups/:id(.:format)      admin/groups#show 

按顺序搜索路线列表。 /admin/groups/users:id等于users

+0

完美!谢谢你,这让我疯狂。 – ggrillone

1

render是无论是在形式

render :json => @user_groups 

在它给你电话to_json,它不能传递参数,或者你可以这样做:

format.json { render @user_groups.to_json(:include => [:group_type, :users], :methods => :enabled) } 

如果你总是要返回JSON不管什么format是,那么就摆脱json:事情:

render @user_groups.to_json(:include => [:group_type, :users], :methods => :enabled) 
+0

不,这似乎没有解决它。我不相信问题出现在控制器中,因为我的show动作正在运行,它使用与我的索引动作完全相同的代码(find_by_id部分除外)。在我的帖子中也提到我创建了一个index2行为,它使用相同的代码,并且工作正常,所以它必须是路由问题,除非我丢失了某些东西 – ggrillone

+0

然后请发布完整的'rake routes'输出。 –

+0

好吧,我刚刚提出。我还发现了一些有趣的东西我在我的索引操作中注释掉了所有的代码。当我刷新浏览器时,它仍然只是在浏览器中说'null',并且我没有收到'Template is missing'错误。(我尝试重新启动rails server并清除缓存并仍然有相同的结果) – ggrillone

0

请改变你的路线,这和检查

namespace :admin do 
     namespace :groups do 
      resources :users, :only => [:index,:show],:collection => {:enabled => :get,:disabled => :get} 
     end 
     end 
+0

在浏览器窗口中仍然获得null null – ggrillone