事件控制器未保存到数据库

时间:2017-03-05 20:51:03

标签: ruby-on-rails ruby database

嗨,我是红宝石铁轨的学生。我正在尝试创建一些东西来保存到我的数据库中。我无法让它发挥作用。

这是我的表单页面:

<h1>Create your Event</h1>

<%= form_for @event do |f| %>

<div>
<%= f.label :name %>:
<%= f.text_field :name %><br />
</div>
<div>
<%= f.label :description %>:
<%= f.text_field :description %><br />
</div>
<div>
<%= f.label :location %>:
<%= f.text_field :location %><br />
</div>
<div>
   <div class="field">
    <%= f.label :date%>
    <%= f.date_select :date,
        { order: [:month, :day, :year],
          prompt: [ day: 'Select day', month: 'Select month', year: 'Select year' ]} %>
  </div>

<br>
<%= f.submit %>
<% end %>

这是我的控制器:

class EventsController < ApplicationController

  def index
    @events = Event.all
  end

  def show
    @event = Event.find(params[:id])
  end

  def new
    @event = Event.new

  end

  def create
    @event = Event.new(event_params)
    if @event.save
      redirect_to event_index
    else
      render 'new'
      flash[:notice] = "Event not saved"
    end

单击“创建事件”按钮时,它不执行任何操作。

我的架构

create_table "events", force: :cascade do |t|
t.string   "name"
t.string   "description"
t.date     "date"
t.string   "location"
t.datetime "created_at",  null: false
t.datetime "updated_at",  null: false
end
在rails控制台中我可以看到:

  

IRB(主):001:0&GT; Event.all     事件加载(4.9ms)SELECT“events”。* FROM“events”   =&GT; #   IRB(主):002:0&GT;

1 个答案:

答案 0 :(得分:0)

一些事情:

使用@event.save!。如果无法创建记录,!将引发有用的错误。

看起来你的控制器中没有定义event_params

此外,您的活动模型是什么样的?有任何验证吗?