Я только что начал новое приложение, где я хочу взять почтовый индекс в форме и сохранить его в базе данных. Моя проблема заключается в том, что действие сотворения, похоже, не называется независимо от того, что я пытаюсь сделать.Создать действие, которое не вызывается в форме
Маршруты:
root 'postcodes#new'
resources :postcodes, only: [:new ,:create]
Контроллер: postcodes_controller.rb
class PostcodesController < ApplicationController
def new
@postcode = Postcode.new
end
def create
@postcode = Postcode.new(postcode_params)
if @postcode.save
flash[:success] = 'Success'
else
flash[:error] = 'Error'
end
end
private
def postcode_params
params.require(:postcode).permit(:code)
end
end
Модель: postcode.rb
class Postcode < ApplicationRecord
validates :code, presence: true, uniqueness: true
end
Вид: почтовые индексы/new.haml
.container
%form
%fieldset.form-group
= form_for @postcode do |f|
= f.label :postcode
= f.text_field :code, placeholder: 'Example Postcode', class: 'form-control'
= f.submit 'Submit', class: 'btn btn-primary'
Я попытался передать больше опций в form_for
, таких как метод и действие, и теперь у меня такое чувство, что это ошибка маршрутизации.
Любая помощь будет оценена по достоинству.
Спасибо.
* Действие создания, кажется, не называется * Как вы говорите? Вы проверили в своей базе данных, что запись не создается? Вы получили сообщение об ошибке? У вашего метода 'create' есть представление, потому что вы не определили перенаправление в конце метода. – spickermann
Извините, мне следовало быть яснее. Ничто не добавляется в базу данных при отправке формы, и если я помещаю '' raise'' в начало действия create, ничего не происходит. –
Что говорит серверный журнал? Любая ошибка? – Pavan