У меня есть форму для людей, которые могут пожертвовать. Для этого требуется адрес электронной почты и имя. Я еще не добавил stripe .. просто пытаюсь получить форму для работы в первую очередь и сохранить их адрес электронной почты в db.Проверка модели, вызывающая ошибку Rails 4
Когда я добавляю подтверждение валидации на мою модель, он ничего не примет. Он просто возвращает уведомление f.error. Когда я избавляюсь от валидаций, форма отправляется успешно, но ничего не сохраняется в базе данных. Консоль rails просто возвращает nil для имени и электронной почты.
Все еще новый для рельсов, возможно, что-то простое. Любые рекомендации были бы замечательными.
donation.rb
(модель):
class Donation < ActiveRecord::Base
attr_accessor :name, :email
validates :name,
presence: true
validates :email,
presence: true
end
donations_controller:
class DonationsController < ApplicationController
def new
@donation = Donation.new
end
def create
@donation = Donation.new(params[donation_params])
if @donation.valid?
redirect_to root_path, notice: "Thank you. We have received your donation."
else
flash[:alert] = "An error occurred, please try again."
render :new
end
end
private
def donation_params
params.require(:donation).permit(:name, :email)
end
end
routes.rb:
get 'donations', to: 'donations#new', as: 'donations'
post 'donations', to: 'donations#create'
new.html.erb (вид донорства):
<body class ="CU">
<div class="authform">
<%= simple_form_for @donation, :url => donations_path do |f| %>
<h1 style = "text-align:center; color:black;">Donate</h1>
<%= f.error_notification %>
<div class="form-group">
<%= f.text_field :name, placeholder: 'Name', :autofocus => true, class: 'form-control' %>
</div>
<div class="form-group">
<%= f.text_field :email, placeholder: 'Email', class: 'form-control' %>
</div>
<%= f.submit 'Donate', :class => 'btn btn-lg btn-danger btn-block' %>
<% end %>
</div>
</body>
Сообщите мне, если вам нужно что-нибудь еще. Спасибо вам, ребята.
@ Kathan не нуждается в этом 'attr_accessor: name,: email'. –
Благодарим вас за быстрый ответ. Когда я использую 'resources: donations' вместо того, чтобы вручную определять маршруты, я получаю эту ошибку:' Индекс действия 'не найден для DonationsController. Однако я изменил все остальное, и он работает: D – Kathan
@AndreyTurkin отредактирован, thx –