![](/img/trans.png)
[英]Is the html structure necessary in an .erb file in Ruby on Rails?
[英]Ruby On Rails and Routes file structure
我想知道以下是否是路由文件中路由的可接受結構。 我還沒有看到完全以這種方式完成此操作的示例,但是它看起來確實合乎邏輯。 如果不是,請告訴我原因。
Rails.application.routes.draw do
### BEGIN /some_base_route/
namespace :some_base_route do
### BEGIN /some_base_route/lead_vendor
namespace :lead_vendor do
get 'import'
get 'results'
end
### END /some_base_route/lead_vendor
### BEGIN /some_base_route/sales/
namespace :sales do
get 'view_lead'
get 'edit_lead'
post 'edit_lead'
get 'create_contact_log'
get 'login'
get 'dashboard'
end
### END /some_base_route/sales/
### BEGIN /some_base_route/admin/
namespace :admin do
get 'admin/login'
get 'admin/dashboard'
end
### END /some_base_route/admin/
### BEGIN /some_base_route/process/
namespace :process do
### BEGIN /some_base_route/process/sales
namespace :sales do
### BEGIN /some_base_route/process/sales/leads
namespace :leads do
get 'create'
get 'edit'
get 'delete'
get 'call_log_create'
end
### END /some_base_route/process/sales/leads
end
### END /some_base_route/process/sales
### BEGIN /some_base_route/process/new_client
namespace :new_client do
get 'new_client/step1'
get 'new_client/step2'
get 'new_client/step3'
get 'new_client/step4'
get 'new_client/step5'
get 'new_client/step6'
end
### END /some_base_route/process/new_client
### BEGIN /some_base_route/process/admin/
namespace :admin do
### BEGIN /some_base_route/process/admin/user_management/
namespace :user_management do
get 'create'
get 'edit'
get 'delete'
get 'disable'
end
### END /some_base_route/process/admin/user_management/
### BEGIN /some_base_route/process/admin/services/
namespace :services do
get 'create'
get 'edit'
get 'delete'
end
### END /some_base_route/process/admin/services/
end
### END /some_base_route/process/admin/
end
### END /some_base_route/process/
end
### END /some_base_route/
@ArieShaw是正確的。 如果耙路有效,則“可以接受”。
但是,以這種方式創建路線將意味着您將錯過一些為您提供的魔術。 特別是,您需要創建自定義控制器動作。
例如,您的銷售區域:
namespace :sales do
get 'view_lead'
get 'edit_lead'
post 'edit_lead'
get 'create_contact_log'
get 'login'
get 'dashboard'
end
我將對其進行重構,並創建Lead和ContactLog對象(也許在Sales名稱空間模塊中)。 然后,我將使用:
namespace :sales do
resources :leads
resources :contact_logs, only: [:create, :new]
end
那會給你:
get sales/leads - index view of leads (probably equivalent to your dashboard view)
get sales/leads/new - form for new lead
post sales/leads - create a new lead
get sales/leads/:id - view one lead
get sales/leads/:id/edit - edit a lead
patch sales/leads/:id - update a lead
delete sales/leads/:id - delete a lead
get sales/contact_logs/new - form for new contract log
post sales/contact_logs - create a contract log
這些動作將與LeadsController和ContactLogsController控制器上的索引,新建,創建,編輯,更新,顯示和銷毀方法匹配。
我也不會在sales名稱空間中處理登錄,而是使用諸如Devise之類的gem。
有關更多信息,請查看以下內容: http : //guides.rubyonrails.org/routing.html
總結:您在示例中所做的操作沒有錯,並且如果要求您創建這些特定路徑,則很可能是一種很好的方法。 但是,由於沒有使用一些平穩的路線,因此使您的工作變得比原來需要的工作更加艱巨。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.