ですから、これは私を困惑させています。ルートに関しては最高ではありませんが、私が達成しようとしていることは単純なようです。私が持っているのは、現在スーパーユーザーだけがアクセスできる機能です。今度は、その機能をportal_administratorに拡張したいと思います。このページにアクセスするには、次のようなlink_toが必要です。
= link_to('Data', portal_datum_path(current_portal.id), :id => :super_user_data_link)
マッチでルーティングされます
match '/portal_data/:id', :controller => 'portal_data', :action => 'show', :as => 'portal_datum'
これで問題なく動作するようになり、IDパラメータを持つURLになります。ルーティング先のページで使用されます。実際、IDがあることを確認するbeforeフィルターがあります。
def load_portal
@portal = Portal.find(params[:id])
end
これにより、サスパーユーザーはURLを確認するだけで自分がどのポータルにいるかを確認できます。これをユーザーに拡張しているので、ユーザーがどのポータルIDを使用しているかを確認したくないので、次のような単一のリソースを使用すると思いました。
= link_to('Data', portal_data_path, :id => :super_user_data_link)
とともに
match '/portal_data' => "portal_data#show"
そのため、同じ場所にルーティングされますが、URLはクリーンに保たれます。しかし、明らかにこのドセントは機能します。ビフォアファイラーをハードコーディングして最初のポータルを受け入れる場合でも、jsutはエラーをスローします
No route matches {:controller=>"portal_data", :action=>"show"}
しかし、私が自分のルートをかき集めたら、そこにありますか?
私が間違っていることは明らかなアイデアだと確信していますか?