无法更新 Rails 应用中的现有记录

Can't update existing records in Rails app

当我创建一个新事件时,似乎一切都正确保存在我的 Rails 4 应用程序(使用 simple_form)上,但是当我尝试更新现有事件时(通过转到 events/3/edit), 它不保存任何更改。

这是我的控制台日志:

Started PATCH "/events/3" for 12.43.117.2 at 2015-06-17 19:28:34 +0000
Started PATCH "/events/3" for 12.43.117.2 at 2015-06-17 19:28:34 +0000
Processing by EventsController#update as HTML
Processing by EventsController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"tdCaXgxDSLNJg2qcsB91W9No3fJpu7Z7XDxktXGGJ5A=", "event"=>{"event_name"=>"Salute Miami’s Bicycling Heroes: Reception for Kirk Munroe & Wilson Larkins", "location"=>"Coco Plum Woman's Club, 1375 Sunset Road, Miami, FL 33143", "event_date_time(1i)"=>"2015", "event_date_time(2i)"=>"6", "event_date_time(3i)"=>"17", "event_date_time(4i)"=>"12", "event_date_time(5i)"=>"03", "description"=>"Honor Kirk Munroe,\r\nblahbicycblah", "organizer"=>"blah", "category"=>"Community Event"}, "commit"=>"Update Event", "id"=>"3"}
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"tdCaXgxDSLNJg2qcsB91W9No3fJpu7Z7XDxktXGGJ5A=", "event"=>{"event_name"=>"Salute Miami’s Bicycling Heroes: Reception for Kirk Munroe & Wilson Larkins", "location"=>"Coco Plum Woman's Club, 1375 Sunset Road, Miami, FL 33143", "event_date_time(1i)"=>"2015", "event_date_time(2i)"=>"6", "event_date_time(3i)"=>"17", "event_date_time(4i)"=>"12", "event_date_time(5i)"=>"03", "description"=>"Honor Kirk Munroe,\r\nblahbicycblah", "organizer"=>"blah", "category"=>"Community Event"}, "commit"=>"Update Event", "id"=>"3"}
  Rendered events/update.html.erb within layouts/application (0.1ms)
  Rendered events/update.html.erb within layouts/application (0.1ms)
Completed 200 OK in 173ms (Views: 171.3ms | ActiveRecord: 0.0ms)
Completed 200 OK in 173ms (Views: 171.3ms | ActiveRecord: 0.0ms)

发生这种情况后,我得到一个空白的更新事件页面,上面没有任何表单字段。然后我 return 到事件索引并返回到单个事件才发现它是原来的样子。无论它在做什么,它似乎都在发送两次信息(首先是原始信息,然后是更新后的信息),但由于某种原因,更新似乎并没有持续。

不管怎样,事件控制器的 def update 部分是空的,我使用的是 postgresql 数据库。

Github 回购:https://github.com/yamilethmedina/wheels_registration 测试服务器:https://wheels-registration-yamilethmedina.c9.io/

这就是我最终所做的,基于此(用 event 替换单词 user):https://www.railstutorial.org/book/updating_and_deleting_users#sec-unsuccessful_edits

events_controller.rb:

def update
    @event = Event.find(params[:id])
    if @event.update_attributes(event_params)
      # Handle a successful update.
    else
      render 'update'
    end
  end

也许删除 else render 'update' 可能会避免在我删除后出现的空白 "update an event" 页面,但这更像是一个后端功能(用户不会有link 来编辑这些事件)并且它接受更改,所以我很满意。