Я за всю свою жизнь не могу понять, что я делаю не так с моим кодом здесь.У меня есть form_for, но когда я нажимаю сохранить, он не сохраняет данные из формы, только данные в контроллере.
Контроллер:
class RegistersController < ApplicationController
def index
end
def new
@reg = Register.new
end
def create
@reg = Register.new(params.permit(:user, :user_id, :class_id))
@reg.user_id = current_user.id
@reg.save
end
def update
end
end
Новый:
<%= form_for @reg do |f| %>
<div class="form-group">
<%= f.label :class_name, class: "col-sm-2 control-label" %>
<%= f.text_area :class_name, class: "form-control"%>
</div>
<div class="form-group">
<%= f.label :user, class: "col-sm-2 control-label" %>
<%= f.text_area :user, class: "form-control" %>
</div>
<%= f.submit 'Save', class: 'btn btn-primary btn-block' %>
<% end %>
Модель:
class Register < ApplicationRecord
belongs_to :user, optional: true
belongs_to :event, optional: true
end
Редактировать:
Я немного поэкспериментировал и попал сюда:
@reg = Register.new (params.required (: user) .permit (: user_id,: class_name))
Это дает мне журнал:
Processing by RegistersController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"BJr3T+RiI0YiyixC6EORKtMG3L8Q9LP3kL7Dh4apt0WdeGzN5mVhy/oNn64+xF9TRRztLqL5/Hf6WEwhucRF8w==", "register"=>{"class_name"=>"Toddler", "user"=>"Billy"}, "commit"=>"Save"}
Completed 400 Bad Request in 1ms (ActiveRecord: 0.0ms)
ActionController::ParameterMissing (param is missing or the value is empty: user):