代码之家  ›  专栏  ›  技术社区  ›  Alfred

从设计URL中删除模型

  •  2
  • Alfred  · 技术社区  · 14 年前

    如何从design urls中删除模型名?

    工业工程

    users/sign_in -> /sign_in
    users/sign_out -> /sign_out
    users/registration/sign_up -> /sign_up
    users/registration/edit -> /edit
    
    2 回复  |  直到 13 年前
        1
  •  3
  •   Tim Regan-Porter    13 年前

    这在device自述文件(https://github.com/plataformatec/device)中介绍:

    还设计有默认航线的船舶。 如果你需要定制它们,你 应该能做到的 通过设计方法。它 接受多个选项,如 :class_name,:path_前缀等, 包括改变的可能性 i18n的路径名:

      devise_for :users, :path => "usuarios", :path_names => { :sign_in => 'login', :sign_out => 'logout', :password => 'secret', :confirmation => 'verification', :unlock => 'unblock', :registration => 'register', :sign_up => 'cmon_let_me_in' }
    

    一定要检查 设计文档以获取详细信息。

    如果你需要更深入 定制,例如 允许/登录 “/users/登录”,您所需要做的一切 是正常创建您的路线 将它们包装在一个设计范围块中 路由器:

      devise_scope :user do
         get "sign_in", :to => "devise/sessions#new"
      end
    

    这种方式 你告诉设计使用范围:用户 访问“登录”时。通知 design eu scope也被命名为as和 你也可以给一个街区 为……设计,结果相同 行为:

       devise_for :users do
         get "sign_in", :to => "devise/sessions#new"
       end
    

    感到自由 选择你喜欢的那个!

    (可能这个问题最初提出时,在自述文件中没有。)

        2
  •  1
  •   Alfred    14 年前

    手动执行此操作的方法是Rails 3:

    match 'sign_in' => 'devise/sessions#new', :as => :sign_in
    match 'sign_out' => 'devise/sessions#destroy', :as => :sign_out