这是我通过路线检索params[:status]
的方式:
namespace :admin do
get 'provider/status/:status', as: 'status_provider', to: 'providers#index'`
end
但我总是params[:status]
返回nil
:
if params[:status].nil?
providers = Provider.order("#{sort_column} #{sort_direction}")
else
providers = Provider.filter_by_params(params[:status]).order("#{sort_column} #{sort_direction}")
end
以下是观点:
<%= admin_status_provider_path("enabled") %>
已更新
我也试过编辑我的观点:
<%= admin_status_provider_path(status: "enabled") %>
<a href="<%= admin_status_provider_path(status: 'enabled') %>" class="btn btn-default">
Enabled
</a>
但结果仍然相同。
答案 0 :(得分:2)
您的状态是预期的:状态为整数,因此更改后应该执行操作
namespace :admin do
get 'provider/status/:status', as: 'status_provider', to: 'providers#index', constraints: { status: /.*/ }
end
这就是诀窍
Started GET "provider/status/abc" for 127.0.0.1
Processing by ProvidersController#index as HTML
Parameters: {"status"=>"abc"}