В Rails 3 с использованием Formtastic и Devise общие маршруты вызывают ошибки при добавлении новой записи для модели.

У меня есть очень простая программа rails 3 с двумя моделями: пользовательская модель для Devise и модель записи, которая захватывает текстовое поле и идентификатор пользователя.

Мой файл маршрутов довольно прост:

devise_for :users
resources :users, :writings
root :to => "users#index"

И моя форма для писем, использующая Formtastic, тоже такая:

<% semantic_form_for(@writing, :html => {:method => :put}) do |f| %>
<%= f.input :main %>
<%= f.input :user_id, :collection => current_user, :as => :hidden %>
<%= f.buttons %>
<% end %>

Когда я пытаюсь создать новое письмо, форма выглядит великолепно, но затем, когда я нажимаю «Отправить», я получаю следующую ошибку:

No route matches "/writings"

Я запустил рейк-маршруты, и все остальное, похоже, работает, и я использую стандартную генерацию каркаса из рельсов, поэтому контроллер является готовым контроллером.

Любые идеи о том, где я сбился с пути?


person Chris    schedule 07.03.2011    source источник
comment
Можешь попробовать сделать <% semantic_form_for @writing do |f| %>?   -  person Augusto    schedule 07.03.2011
comment
@Augusto, вы должны поместить этот комментарий как фактический ответ, потому что я уверен, что он решит проблему.   -  person stephenmurdoch    schedule 07.03.2011


Ответы (1)


Крис, попробуй поставить декларацию вот такой формы

<% semantic_form_for @writing do |f| %>
<%= f.input :main %>
<%= f.input :user_id, :collection => current_user, :as => :hidden %>
<%= f.buttons %>
<% end %>

У меня есть идея, что когда вы указываете параметр :html, вы «переопределяете» некоторые значения по умолчанию в formtastic. Извините, я не эксперт по формастике. Я немного попользовался, а затем решил перейти на simple_form :).

person Augusto    schedule 07.03.2011
comment
Это точно решило проблему. Огромное спасибо! - person Chris; 07.03.2011