2017-11-02 3 views
0

からスコープ定義の名前をオーバーライドします。、あなたがルートの束のスコープを作成しました想像のw /スコープブロックの

scope 'author', as: 'author' do 
    get 'search'  => 'author#search' 
    get 'publishers' => 'author#publishers' 
    get 'books'  => 'author#my_books', as: 'my_books' 
    get 'stores'  => 'author#stores' 
end 

範囲は当然の要求ごとにパスを作成します。例えば、searchは、author_search_pathと呼ばれるパスを有する。

スコープブロック内からパスにスコープを含めるのをどのようにオーバーライドできますか?たとえば、booksmy_booksと名前が変更されますが、有効範囲はauthor_my_books_pathになります。スコープブロック外の行を移動することなく、パス名をmy_books_pathauthor_なし)に変更できますか?

authorはリソースではないため、私は浅いコレクションやコレクションを使用することはできません。


注:上記は、実際のデータではなく、唯一の例では、プライバシー規則に準拠します。

答えて

1

いいえ、私はそれをscopeブロックの外側に移動させずに行う方法は考えられません。それ以降は、scopeブロックの後に置くことがあります。

get 'author/books' => 'author#my_books', as: 'my_books' 
+0

ありがとう、ライアン。私はコードをより読みやすくするためにコードをリファクタリングしたいと思っていたのは残念ですが、これはルートを破ると思われます。コード外の行が部分的に乱雑に見えます。順序/優先順位(FIFO)の全体要素があります。 – BotNet

関連する問題