我对Ruby on Rails很新。我会玩弄它。实际上,我正在尝试创建一个带有标题和Daterangepick(bootstrap)的表单。
所以,到目前为止一切正常。但我有一个问题:我的数据不保存在数据库中。每次我提交表单时都会创建一个新记录,自动插入“created_at”等。但我的两个字段“title”和“date”每次都是空的...我真的不知道我的错在哪里。愿你们有人可以帮助我吗?请给我一个解释的答案,因为我真的想了解最新情况。
这是我的代码(我使用的是simple_form gem)
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 /:id ...只是数据库保持空白。谢谢你的帮助!!!
答案 0 :(得分:2)
你的参数需要require
:
def event_params
params.require(:event).permit(:title, :date)
end