我在 routes.rb
中有这条路线get "/whats_new/:only_new" => 'products#index', as: :whats_new_page_products, :defaults => { :only_new => true }
及其产生:
localhost:3000/whats_new/true
有没有办法只将它显示为:
localhost:3000/whats_new/
提前致谢
答案 0 :(得分:1)
你可以做到
get ':whats_new' => 'products#index', as: :whats_new_page_products, :defaults => {:whats_new => true }
这应该产生你想要的结果。每当您params[:only_new]
现在需要params[:whats_new]
答案 1 :(得分:1)
尝试:
String gotText = editText.getText()
editText.setText(gotText + result)
这将创建一个可选参数,您可以在控制器中查看该参数。
现在,用户可以向get "/whats_new(/:only_new)" => 'products#index', as: :whats_new_page_products
或/whats_new
发出请求(用任何参数值替换为true)。在您的控制器中,您可以检查params [:only_new]是否为真。
答案 2 :(得分:0)
#config/routes.rb
get :whats_new, to: "products#index", as: :whats_new_page_products #-> url.com/whats_new
#app/controllers/products_controller.rb
class ProductsController < ApplicationController
def index
if /^(whats_new)$/ !~ request.path
@products = Product.only_new
else
@products = Product.all
end
end
end
我认为您不需要传递参数来识别请求。以上是有点hacky,但应该工作。