У меня есть эта строка в моем routes.db файле:
map.resources :things
Я пытаюсь создать ссылку, которая создаст новую вещь. До сих пор я имею
<%= link_to "add thing", things_path (:thingName => key)%>
Но я получаю это сообщение об ошибке:
Unknown action
No action responded to index. Actions: create and new
Как я делаю link_to строку так, чтобы она связалась с создать методом вместо индексного метода? Спасибо за чтение.
Вы хотите создать ссылку на действие создать или создать? Новое действие: <% = link_to "добавить вещь", new_thing_path%> Действие create здесь не имеет смысла, поскольку у вас нет данных для ввода в новый объект? Если я чего-то не упустил ...
Вероятно, вы не хотите создавать ресурс с помощью такой ссылки. Ссылки представляют собой HTTP-запросы GET
, которые можно кэшировать, и поисковые системы будут переходить по этой ссылке, что приведет к неправильному созданию записей базы данных. Для создания ресурса следует использовать только запросы HTTP POST
. Для этого вам понадобится форма
. Если вы уже знаете, какие данные нужно передать, вы можете использовать hidden_field
для передачи дополнительных данных
<% form_for Thing.new(:thing_name => key ) do |f| %>
<%= f.hidden_field :thing_name %>
<%= f.submit %>
<% end %>