簡體   English   中英

Ruby on Rails排除了路由約束中的組元素

[英]Ruby on Rails exclude group elements in route constraints

我想知道,如何為我的路線定義約束正則表達式,只有當它排除了組中的每個元素時才會匹配。

例如,我想這樣做:

get "list/:action", :constraints => {:action => [NONE OF THE FOLLOWING: (new, edit, delete, update)}

我知道如果我們希望它匹配列表中的任何元素,我們就會這樣定義:

get "list/:action", :constraints => {:action => /(new|edit|delete|update)/},但我不知道,如何讓它如上所述工作。

我試過用^! 在集團面前的跡象,但到目前為止沒有運氣 - 我認為必須有另一個符號。

我該如何排除這些元素?

請嘗試以下方法。 它將排除路線中的行為。

class ExcludeActions
  def matches?
    ["new", "edit", "delete", "update"].exclude? params[:action]
  end
end

get "list/:id", :constraints => ExcludeActions.new

這將從list路由中排除neweditdeleteupdate操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM