Rails forms parameters that are not matched

I am doing a small project to get to know Rails. I have the following code:

Event.rb model

class Event < ApplicationRecord
  validates :title, presence: true
  validates :date, presence: true
  has_and_belongs_to_many :users
end

View app /views/events/new.html.erb

<h1> Create event </h1>
<p> Create a new event here: </p>
<%= form_for @event do |e| %>
<%= e.label :title %>
<%= e.text_field :title %> <br />
<%= e.label :date %>
<%= e.text_field :date %> <br />
<%= e.submit  %>
<% end %>

application controller / controllers / events_controller.rb

def create
    @event = Event.new(event_params)
    if @event.save
      render html: "Event saved!"
    else
      render html: "Didn't work :("
    end
  end

 private
  def event_params
    params.permit(:title, :date)
 end

Routes

  get "events"      => "events#index"
  get "events/new"  => "events#new"
  post "events"     => "events#create"

However, every time I submit, the parameters become empty: Empty options

I did not use the resource: events and instead did it manually for practice. Why are parameters not selected?

+4
source share
1 answer

Try the following:

params.require(:event).permit(:title, :date)
+3
source

Source: https://habr.com/ru/post/1693127/


All Articles