为什么我的数据不会保存到SQL?
问题描述:
我是Ruby on Rails的新手。我只是玩弄它而已。其实,我试图创建一个标题和Daterangepick(引导)的表单。为什么我的数据不会保存到SQL?
因此,一切正常,直到现在。但我有一个问题:我的数据不保存在数据库中。每次我提交表单,它会创建一个新记录,自动插入“created_at”等。但是,我的两个字段“标题”和“日期”每次都是空的......我真的不知道我的错在哪里。愿有人能帮助我吗?请给我一个解释的答案,因为我真的想了解正在发生的事情。
这里是我的代码(我使用simple_form宝石)
new.html.erb:
<%= simple_form_for @event do |f| %>
<%= f.input_field :title, required: false %>
<%= f.input :date, input_html: { class: "daterange" }, required: false %>
<%= f.button :submit %>
<% end %>
<script type="text/javascript">
$(document).ready(function() {
$('input[class="string optional daterange"]').daterangepicker(
{
locale: {
format: 'YYYY-MM-DD'
},
startDate: '2013-01-01',
endDate: '2013-12-31'
},
function(start, end, label) {
alert("A new date range was chosen: " + start.format('YYYY-MM-DD') + ' to ' + end.format('YYYY-MM-DD'));
});
});
</script>
events_controller.rb:
class EventsController < ApplicationController
def index
@event = Event.all
end
def show
end
def new
@event = Event.new
end
def create
@event = Event.new(event_params)
if @event.save
redirect_to @event
else
render 'new'
end
end
private
def event_params
params.permit(:title, :date)
end
end
我想,这应该是足够...当然,如果你愿意,我可以发布更多的代码,但我认为问题必须在某处,因为一切工作正常......它路由罚款,我可以插入,它将我重定向到/ events /:编号...只是数据库se保持空虚。感谢您的帮助 !!!
答
您需要require
在PARAMS:
def event_params
params.require(:event).permit(:title, :date)
end
感谢的人!这解决了我的问题! 但是真的很奇怪......我发誓2小时前我已经用这个了,需要完全按照你现在写的方式......而且我得到了一个错误。现在它可以工作。可悲的是,我不知道我在过去两个小时内发生了什么变化......但无所谓,谢谢! – Twinfriends