Каков наилучший способ получить / опубликовать действие в Rails?Как ресурсы преобразуются внутри? - PullRequest
1 голос
/ 06 марта 2011

Мне было интересно, что является лучшим способом создания стандартной процедуры действий get / post с точки зрения кода и маршрутизации.

Всякий раз, когда мне нужно получить страницу, я просто создаю действие идобавить маршрут как:

  scope :path => '/town', :controller => :town do
    match '/' => :index, :as => 'town'
  end

Это позволило бы мне получить страницу города.Если я правильно понимаю маршрутизацию рельсов, это потенциально относится к / town как к странице поста, но я не говорю ни о какой реальной проблеме безопасности с этим.

Когда у меня есть пост-действие, обработанное моим контроллером, яобычно запускают функции там комментарием:

# POSTED ACTIONS

, потому что я хочу разделить действия get / post.И я добавляю аналогичный маршрут, как указано выше.Я полагаю, что для действия после публикации я бы выбрал совпадение: возможно, по почте.Мне было бы очень интересно посмотреть, как Rails внутренне преобразует «ресурсы: что угодно», чтобы сделать то же самое для моих маршрутов.

Не могли бы вы объяснить, как вы создаете свои опубликованные действия и знает ли кто-нибудь о них?какие "ресурсы: пользователи" на самом деле конвертируются?

1 Ответ

3 голосов
/ 06 марта 2011

resources :things означает следующее:

Verb    Path             Action (method in ThingsController)
----    ----             ------
GET     /things          index
GET     /things/new      new
POST    /things          create
GET     /things/:id      show
GET     /things/:id/edit edit
PUT     /things/:id      update
DELETE  /things/:id      destroy

, который можно записать вручную как

get    'things'          => 'things#index', :as => :things
get    'things/new'      => 'things#new',   :as => :new_thing
post   'things'          => 'things#create'
get    'things/:id'      => 'things#show',  :as => :thing
get    'things/:id/edit' => 'things#edit',  :as => :edit_thing
put    'things/:id'      => 'things#update'
delete 'things/:id'      => 'things#destroy'

Если вы хотите использовать resources минус определенные действия, вы можете сделать

resources :things, :except => [:edit, :update]

Руководство по маршрутизации Rails 1013 * - отличный ресурс для изучения системы маршрутизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...