【问题标题】:What is the manually typed equivalent of resources in rails routes.rb?rails routes.rb 中手动输入的资源等价物是什么?
【发布时间】:2019-06-23 21:49:41
【问题描述】:

假设rails new myapp && cd myapp && rails g scaffold Teacher

routes.rb 包含resources :teachers

routes.rb 中这一行的手动输入等效项是什么? (我问的原因是因为我想保留大部分,但编辑一些路线)

【问题讨论】:

  • 路由显示在rails routes。我认为您可以从该输出中得出“手动”代码
  • “但要编辑一些路线”——这很有趣。您要编辑什么、如何以及为什么要编辑?我的意思是,如果你想脱离惯例,你应该有充分的理由。
  • @SergioTulentsev 我正在创建一个非常基本的 API。我不想允许任何不必要的事情。用户可能需要的唯一两件事是查看一些数据('get')或删除记录('destroy')或插入新记录('create')
  • 所以没有编辑任何路线?只是不使用某些操作?这是三件事,而不是两件事:)
  • “我正在寻找将在 routes.rb 中提供的功能与资源完全相同的代码:教师” - 我的回答和关于 rails routes 的提示还不够吗?是的,这不是一个完整的解决方案,但是缺少的代码应该几乎可以推断出来。这将很有用:guides.rubyonrails.org/routing.html

标签: ruby-on-rails ruby-on-rails-5


【解决方案1】:

用户可能需要做的唯一两件事是查看一些数据('get')或删除记录('destroy')或插入新记录('create')

支持此场景:

 resources :teachers, only: [:show, :destroy, :create]

对于“手动”路由,您可以像这样表达:show 路由:

 get '/teachers/:id', to: 'teachers#show'

完整的等价物如下:

get '/teachers' => 'teachers#index'
get '/teachers/:id' => 'teachers#show'
get '/teachers/new' => 'teachers#new'
post '/teachers' => 'teachers#create'
get '/teachers/:id/edit' => 'teachers#edit'
put '/teachers/:id' => 'teachers#update'
delete '/teachers/:id' => 'teachers#destroy'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 2014-02-15
    • 2014-02-24
    相关资源
    最近更新 更多