2016-09-22 75 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

相關問題