Можно ли изменить действие по умолчанию для ресурса RESTful? - PullRequest
1 голос
/ 28 октября 2009

В Ruby on Rails возможно ли изменить действие по умолчанию для ресурса RESTful, чем когда кто-то, например, переходит в / books, он получает: new вместо списка (мне все равно, если это означает больше не могу показывать список)?

Ответы [ 5 ]

2 голосов
/ 28 октября 2009

Не знаю, зачем вам это делать, но просто добавьте это

map.connect "/books", :controller => "books", :action => "new", :conditions => { :method => :get}

в ваш config / rout.rb до

map.resources :books

и должно работать.

2 голосов
/ 28 октября 2009

Я бы отметил, что если вы указываете / books на / books / new, вы будете путать любого, кто ожидает REST. Если вы работаете не в одиночку, или если у вас есть и другие приходят позже, или если вы ожидаете раскрыть API снаружи, соглашение REST гласит, что / books выводит вас в список, / books / new где вы создаете новую запись.

0 голосов
/ 28 октября 2009
def index
  redirect_to new_book_path
end

Я думаю, это был бы самый простой способ.

0 голосов
/ 28 октября 2009

В том же духе, вы можете просто сделать

def index
  show
end
0 голосов
/ 28 октября 2009

Да. Вы должны иметь возможность заменить ваш индексный метод в вашем контроллере ...



def index
  @resource = Resource.new
  # have your index template with they proper form
end

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