我想向我的路线添加另一个显式查询参数。
现在,我有这个:
Rails.application.routes.draw do
scope :format => true, :constraints => {:format => :json} do
get 'proxies/random(?type=:proxy_type)' => 'proxies#random'
我想做的是再添加一个(?origin=:origin)
查询参数。
我只是找不到任何文档或示例。
我相信我应该有这样的东西:
Rails.application.routes.draw do
scope :format => true, :constraints => {:format => :json} do
get 'proxies/random(?type=:proxy_type&origin=:origin)' => 'proxies#random'
或者也许是这个
Rails.application.routes.draw do
scope :format => true, :constraints => {:format => :json} do
get 'proxies/random(?type=:proxy_type)(?origin=:origin)' => 'proxies#random'
什么是正确的方法?
顺便说一句,这就是我在控制器中所做的事情:
[...]
before_filter :find_randomly, only: :random
[...]
def find_randomly
if params[:origin].nil? or params[:origin].blank?
relation = ProxiesCatalogueProxy.where(blacklisted: false)
else
relation = ProxiesCatalogueProxy.where(blacklisted: false, origin: params[:origin])
end
@proxy = if params[:type].nil? or params[:type].blank?
relation.order("RAND()").first
else
relation.where(proxy_type: params[:type]).order("RAND()").first
end
end
还可以有人提供有关此主题的任何好的资源/资料吗? 谢谢。
答案 0 :(得分:0)
如果要将参数硬编码到路由中,可以执行以下操作:
map(parent, ~ imap(.x, ~ .x %>%
mutate(identifier = .y)))
这不会影响URL匹配,并将原点添加到您的params哈希中,可以在相应的控制器中访问,并以<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet</artifactId>
<version>${restlet-version}</version>
</dependency>
<dependency>
<groupId>org.restlet.jse</groupId>
<artifactId>org.restlet.ext.jackson</artifactId>
<version>${restlet-version}</version>
</dependency>
<dependency>
<groupId>org.restlet.jse</groupId>
<artifactId>org.restlet.ext.swagger</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
的形式进行操作。