Я работаю над веб-сайтом и хочу добавить кнопку подписки для получения электронной почты от пользователей, чтобы отправить им некоторую информацию, но когда я введу адрес электронной почты и нажму кнопку отправки, информация о пользователе не будет сохранена.
Когда я создаю пользователя в консоли rails, выполняя:
Subscriber.create!(email: "test@example.com")
, он фактически сохраняет информацию о пользователе:
Subscriber Create (22.7ms) INSERT INTO "subscribers" ("email", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["email", "test@example.com"], ["created_at", "2019-06-17 11:00:06.853545"], ["updated_at", "2019-06-17 11:00:06.853545"]]], ["updated_at", "2019-06-17 11:00:06.853545"]]
, но не при регистрации его из формы.
index.html.erb
<form class="form form-cta mt-2">
<div class="form-group">
<div class="row gutter-0">
<div class="col-8">
<%= form_for @subscriber do |f| %>
<%= f.email_field :email, placeholder: "Votre email", class: "form-
control form-control-rounded" %>
</div>
<div class="col">
<%= f.submit :Sabonner, class: "btn btn-info btn-rounded btn-block" %>
</div>
</div>
<% end %>
</div>
</form>
statics_controller.rb
class StaticsController < ApplicationController
def index
@subscriber = Subscriber.new
end
end
rout.rb
Rails.application.routes.draw do
resources :subscribers
root to: 'statics#index'
end
members_controller.rb
class SubscribersController < ApplicationController
def create
@subscriber = Subscriber.new subscriber_params
if @subscriber.save
redirect_to root_path, notice: 'Namsté !'
else
redirect_to root_path, alert: 'test'
end
private
def subscriber_params
params.require(:subscriber).permit(:email)
end
end
Консоль Rails:
Processing by StaticsController#index as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"balbalbla==", "subscriber"=>{"email"=>"test@test.com"}, "commit"=>"Sabonner"}
Rendering statics/index.html.erb within layouts/application
Rendered statics/index.html.erb within layouts/application (29.0ms)
Completed 200 OK in 188ms (Views: 129.2ms | ActiveRecord: 9.0ms)
Я ожидаю, когда захожу в консоль, чтобы получить всех моих подписчиков, но ни один из них не сохраняется.У вас есть идеи, откуда это может прийти?
Спасибо