我有一个管理工具,我有玩家。在玩家中我有一个索引页面,但我也有一个搜索页面。在搜索页面中,我有一些搜索参数,然后在其下面呈现索引表。现在每个玩家我都有能力启用或禁用它们。我面临的问题是,在我的控制器中我的启用/禁用方法我被重定向到我的玩家根路径。这显然是在我添加搜索功能之前创建的。
我正在尝试做的是将路线保持在正确的位置。因此,如果我在索引中并为其中一个玩家点击禁用,我希望它保留在索引页面内。同样,如果我在搜索页面上并点击禁用/启用,我希望它重定向回搜索页面而不是索引页面。
以下是我的代码。我真的尝试过在控制器内的重定向路由中工作,但是遇到了与它们不一致的问题。
在我的控制器中我有这个。
def disable
if @player.disable!
flash[:notice] = 'Player was successfully disabled.'
else
flash[:notice] = 'Failed to disable player.'
end
if search_player_path.present?
redirect_to search__player_path
else
redirect_to player_path
end
end
def enable
if @player.enable!
flash[:notice] = 'Player was successfully enabled.'
else
flash[:notice] = 'Failed to enable player.'
end
if search_players_path.present?
redirect_to search_players_path
else
redirect_to players_path
end
end
我的路线文件就像这样
resources :players do
match :import, action: :import, as: :import, via: [:get, :post], on: :collection
member do
put :enable
put :disable
put :unexpire
put :resend_invite
end
collection do
get :search
end
end
最后在我通过索引页面呈现的表格中(因此在我的搜索页面中再次使用)这是在前端。 (我知道......前端的逻辑,请原谅我)我有
%td.td-actions
.row-fluid
= render partial: "zipadmin/shared/table_actions", locals: {resource: patient, actions: [:read, :update]}
-if player.disabled?
= link_to enable_player_path(player), :method=>:put, class: 'btn btn-small btn-success' do
%i.fa.fa-plus
Enable
- else
= link_to disable_player_path(player), :method=>:put, class: 'btn btn-small btn-warning' do
%i.fa.fa-minus
Disable
答案 0 :(得分:1)
在你的控制器中,只需redirect_to:back
这会将用户带回他们离开的任何页面。我认为这是你的问题,但我不确定。如果没有,我很乐意调整我的回应。