Как мне связать с функцией создания в моем контроллере в Ruby on Rails? - PullRequest
1 голос
/ 28 июня 2010

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

Ответы [ 2 ]

1 голос
/ 28 июня 2010

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

<% form_for Thing.new(:thing_name => key ) do |f| %>
   <%= f.hidden_field :thing_name %>
   <%= f.submit %>
<% end %>
1 голос
/ 28 июня 2010

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

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