Ruby on rails Rails-缺少参数或值为空
最近,我连接了gem。现在我的Ruby on rails Rails-缺少参数或值为空,ruby-on-rails,forms,pickadate,Ruby On Rails,Forms,Pickadate,最近,我连接了gem。现在我的\u表单如下所示: <%= 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: "f
\u表单
如下所示:
<%= 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>
如您所见,事件
模型有两个参数:名称
(字符串类型)和开始时间
(日期时间类型)。这是我的创建
方法和事件参数
:
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 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>
名称
开始时间
我想是形式有问题。有什么想法吗?提前谢谢 尝试使用
put params
打印您在create
操作中收到的参数,并将其发布。@GokulM我已添加了该行,但应在何处查找结果。服务器控制台?没有任何内容是的,它应该在您的服务器控制台中打印params
def create put event_params@event=event.new(event_params)将_重定向到events_path end
或只使用put params
@GokulM找到它:{“controller”=>“events”,“action”=>“create”}
嘿,没有收到create
的params
这就是为什么出现错误param丢失或值为空:event
尝试使用put params
打印在create
操作中收到的参数并将其发布。@GokulM我添加了行,但我应该在哪里查找结果。服务器控制台?没有任何内容是的,它应该在您的服务器控制台中打印params
def create put event_params@event=event.new(event_params)将_重定向到events_path end
或只使用put params
@GokulM找到它:{“controller”=>“events”,“action”=>“create”}
嘿,没有为create
接收到params
,这就是您得到错误param丢失或值为空的原因:事件
<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>