2016-09-22 43 views
1

我是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保持空虚。感谢您的帮助 !!!

回答

2

您需要require在PARAMS:

def event_params 
    params.require(:event).permit(:title, :date) 
    end 
+0

感谢的人!这解决了我的问题! 但是真的很奇怪......我发誓2小时前我已经用这个了,需要完全按照你现在写的方式......而且我得到了一个错误。现在它可以工作。可悲的是,我不知道我在过去两个小时内发生了什么变化......但无所谓,谢谢! – Twinfriends

相关问题