Мне кажется, что это прямая проблема, но другие рекомендуемые решения, похоже, не работают. По сути, все, что я хочу, - это приложение, которое создает подписчика с атрибутом номера телефона.
Контроллер подписчика
class SubscribersController < ApplicationController
def index
end
def new
@subscriber = Subscriber.new
end
def create
@subscriber = Subscriber.new(subscriber_params)
@subscriber.save
end
def show
@subscribers = Subscriber.all
end
def update
end
private
def subscriber_params
params.require(:subscriber).permit(:phone)
end
end
Создать. html .erb
<div class="recent">
<h3>Subscribe to Texts</h3>
<%= form_for @subscriber do |f| %>
<span><label for="phone">Phone</label></span>
<%= f.text_field :phone, class: 'form-control' %>
<%= f.submit %>
<%end%>
</div>
<% [:success, :error].each do |key| %>
<% if flash[key] %>
<div class="<%= key %>" id="flash">
<%= flash[key] %>
</div>
<% end %>
<% end %>
Если я удалю .require (: subscriber), он не будет сохранять подписчика и он создаст транзакцию отката, сообщающую, что подписчик является недопустимым параметром
, если я помещу подписчика в .permit, он просто не сохранит его через форму.
Что мне делать? Я чувствую, что это прямо вперед, что делает его еще более разочаровывающим.
Редактировать: Программа не будет работать с .require (: subscriber), если я добавлю ее в .permit (: subscriber,: phone), я получу это в журналах сервера
Параметры : {"utf8" => "✓", "authenticity_token" => "xxxx ==", "subscriber" => {"phone" => "5555555555"}, "commit" => "Create Subscriber"} Недопустимые параметры :: utf8,: authenticity_token,: subscriber,: commit
Если я просто поставлю .permit (: phone), я получу то же самое
Если я поставлю @ subscriber.save! в методе создания я получаю эту ошибку:
app/controllers/subscribers_controller.rb:20:in `subscriber_params'
app/controllers/subscribers_controller.rb:6:in `create'
Started GET "/" for ::1 at 2020-02-23 10:02:32 -0500
Processing by SubscribersController#create as HTML
(0.2ms) begin transaction
(0.1ms) rollback transaction
Completed 422 Unprocessable Entity in 11ms (ActiveRecord: 0.9ms)
ActiveRecord::RecordInvalid (Validation failed: Phone can't be blank):
app/controllers/subscribers_controller.rb:7:in `create'