最近、pickadate gem を接続しました。今、私は次のように_form
見えます:
<%= form_for(@event, :html => {:class => 'form-horizontal'}) do |f| %>
<%= render('error_message') %>
<div class="field form-group">
<%= f.label :name %>
<%= f.text_field :name, class: "form-control" %>
</div>
<div class="field form-group">
<%= f.label :start_time %>
<%= f.text_field :start_time, class: "datepicker form-control"%>
</div>
<div class="actions">
<%= f.submit 'Save', class: "btn btn-success" %>
</div>
<% end %>
<script type="text/javascript">
$('.datepicker').pickadate({
//customization
})
</script>
ここにあるnew.html.erb
:
<% provide(:title, t('new_event_title')) %>
<h1><%= t('new_event_h1') %></h1>
<%= render 'form' %>
ご覧のとおり、モデルには(文字列型) と(日時型)のEvent
2 つのパラメーターがあります。これが私の方法です:name
start_time
create
event_params
def create
@event = Event.new(event_params)
redirect_to events_path
end
def event_params
params.require(:event).permit(:name, :start_time)
end
しかし、「保存」ボタンをクリックすると、次のエラーが発生しました。
ActionController::ParameterMissing in EventsController#create
param is missing or the value is empty: event
サーバーログは次のとおりです。
Started POST "/events" for ::1 at 2016-03-07 15:23:08 +0300
Processing by EventsController#create as HTML
Can't verify CSRF token authenticity
{"controller"=>"events", "action"=>"create"}
Completed 400 Bad Request in 2ms (ActiveRecord: 0.0ms)
私のレンダリングされた _form:
<form class="form-horizontal" id="new_event" action="/events" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" /><input type="hidden" name="authenticity_token" value="jvg+<...>Q==" />
<div class="field form-group">
<label for="event_name">Name</label><br>
<input class="form-control" type="text" name="event[name]" id="event_name" />
</div>
<div class="field form-group">
<label for="event_start_time">Start time</label><br>
<input class="datepicker form-control" type="text" name="event[start_time]" id="event_start_time" />
</div>
<div class="actions">
<input type="submit" name="commit" value="Save" class="btn btn-success" />
</div>
</form>
フォームに何か問題があると思います。何か案は?前もって感謝します!