Как я правильно назвал бы действие по созданию от link_to? Я использую REST (map.resources: рецепты). Вот действие по созданию:
def create
recipe = Recipe.create(:name => "French fries")
redirect_to recipe
end
Например, я думал, что что-то вроде этого могло бы работать:
<%= link_to "Create a default recipe", recipe_path, :method => :post %>
Я не уверен, является ли это рекомендуемым (или даже исправьте), способ сделать это. Какая-либо идея?
Это должно сработать, если вы замените recipes_path
на recipe_path
.
Если вы посмотрите на вывод rake routes
, вы должны увидеть что-то вроде:
recipes GET /recipes(.:format) {:controller=>"recipes", :action=>"index"}
POST /recipes(.:format) {:controller=>"recipes", :action=>"create"}
Это подсказка, что помощник URL ("recipes_path"), так как действие create состоит из имя контроллера с _path
, прикрепленным к концу, используя : method =>: post
.Тот же путь с использованием : method =>: get
(по умолчанию) соответствует действию index
.
Помните, что это не сработает, если Javascript отключен, потому что Rails фактически добавляет обработчик on_click, который создает форму для выполнения POST. То же самое касается удаления ссылок с опцией : подтвердить
.