Как я связываюсь с создать функцией в своем контроллере в Ruby on Rails?

У меня есть эта строка в моем 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 строку так, чтобы она связалась с создать методом вместо индексного метода? Спасибо за чтение.

1
задан ben 28 June 2010 в 03:57
поделиться

2 ответа

Вы хотите создать ссылку на действие создать или создать? Новое действие: <% = link_to "добавить вещь", new_thing_path%> Действие create здесь не имеет смысла, поскольку у вас нет данных для ввода в новый объект? Если я чего-то не упустил ...

1
ответ дан 2 September 2019 в 23:27
поделиться

Вероятно, вы не хотите создавать ресурс с помощью такой ссылки. Ссылки представляют собой HTTP-запросы GET , которые можно кэшировать, и поисковые системы будут переходить по этой ссылке, что приведет к неправильному созданию записей базы данных. Для создания ресурса следует использовать только запросы HTTP POST . Для этого вам понадобится форма . Если вы уже знаете, какие данные нужно передать, вы можете использовать hidden_field для передачи дополнительных данных

<% form_for Thing.new(:thing_name => key ) do |f| %>
   <%= f.hidden_field :thing_name %>
   <%= f.submit %>
<% end %>
1
ответ дан 2 September 2019 в 23:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: