почему на Ruby on Rails, http://localhost:3000/stories/newnew будет искать запись id = newnew? - PullRequest
0 голосов
/ 24 мая 2009

с использованием Ruby on Rails 2.3.2, так как я уже создал Scaffold for Story, поэтому вместо эксперимента и создания нового действия под названием «new» («new» уже существует из скаффолда), я использовал «newnew» в файл контроллера и в файле просмотра, надеясь, что

http://localhost:3000/stories/newnew

будет еще одним способом создания новой записи. но оказывается, что RoR будет обрабатывать «newnew» как идентификатор записи вместо действия, как сообщается:

Не удалось найти историю с идентификатором = newnew

Есть ли способ сделать новое также как действие?

route.rb имеет

map.resources :stories

map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'

и это Rails 2.3.2

Ответы [ 3 ]

2 голосов
/ 24 мая 2009

Источник проблемы, вероятно, находится в вашем маршруте. Rb, можете ли вы опубликовать его содержание в своем вопросе?

В зависимости от версии направляющих и от того, используете ли вы ресурсы RESTful, поведение может различаться. В любом случае, route.rb должен содержать ответ.

2 голосов
/ 25 мая 2009
map.resources :stories, :collection => {:newnew => :get}

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

С здесь .

0 голосов
/ 24 мая 2009

Действие по умолчанию - перечислить что-то с таким URL. Вы можете реализовать newnew в вашем контроллере историй, но почему?

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