Ruby on rails 数据正在过帐,但未进入数据库

Ruby on rails 数据正在过帐,但未进入数据库,ruby-on-rails,ruby,ajax,ruby-on-rails-3,Ruby On Rails,Ruby,Ajax,Ruby On Rails 3,我正在尝试将HTML从contenteditable DIV保存到数据库中。数据发布良好,但在数据库插入时,它们是nil 这是我的日志: Started POST "/pages" for 127.0.0.1 at 2012-04-29 18:39:01 +0800 Processing by PagesController#create as */* Parameters: {"authenticity_token"=>"yAkOgEXN1Xq6Aiu6thcODiji7rs0SYA

我正在尝试将HTML从contenteditable DIV保存到数据库中。数据发布良好,但在数据库插入时,它们是
nil

这是我的日志:

Started POST "/pages" for 127.0.0.1 at 2012-04-29 18:39:01 +0800
Processing by PagesController#create as */*
  Parameters: {"authenticity_token"=>"yAkOgEXN1Xq6Aiu6thcODiji7rs0SYA07/83XkQ2sBM=", "title"=>"Untitled Page", "live"=>"1", "content"=>"%3Cdiv%20class%3D%22page%20last-page-active%22%20style%3D%22height%3A%20576px%3B%20%22%3E%0A%20%20%20%20%0A%20%20%3Cdiv%20class%3D%22page-element%20page-element-textbox%20ui-draggable%20ui-resizable%20ui-resizable-disabled%20ui-state-disabled%22%20style%3D%22left%3A%201256px%3B%20top%3A%2080px%3B%20width%3A%20272px%3B%20%22%20aria-disabled%3D%22true%22%3E%3Cdiv%20class%3D%22page-element-content%22%20contenteditable%3D%22true%22%3E%3Ch2%3EUntitled%20Page%3C/h2%3E%3C/div%3E%3Cdiv%20class%3D%22ui-resizable-handle%20ui-resizable-e%22%20style%3D%22display%3A%20none%3B%20%22%3E%3C/div%3E%3Cdiv%20class%3D%22ui-resizable-handle%20ui-resizable-w%22%20style%3D%22display%3A%20none%3B%20%22%3E%3C/div%3E%3C/div%3E%0A%3C/div%3E"}
  SQL (0.2ms)  BEGIN
  SQL (1.2ms)  INSERT INTO `pages` (`content`, `created_at`, `live`, `title`, `updated_at`) VALUES (?, ?, ?, ?, ?)  [["content", nil], ["created_at", Sun, 29 Apr 2012 10:39:01 UTC +00:00], ["live", nil], ["title", nil], ["updated_at", Sun, 29 Apr 2012 10:39:01 UTC +00:00]]
   (1.9ms)  COMMIT
这是我的控制器:

class PagesController < ApplicationController
  def index
    @pages = Page.all
    @page = Page.new

    respond_to do |format|
      format.html  # index.html.erb
      format.json  { render :json => @pages }
    end
  end

  def new
    @page = Page.new

    respond_to do |format|
      format.html  # new.html.erb
      format.json  { render :json => @page }
    end
  end

  def create
    @page = Page.new(params[:page])

    respond_to do |format|
      if @page.save
        format.html  { redirect_to(@page,
                      :notice => 'Page was successfully created.') }
        format.json  { render :json => @page,
                      :status => :created, :location => @page }
      else
        format.html  { render :action => "new" }
        format.json  { render :json => @page.errors,
                      :status => :unprocessable_entity }
      end
    end
  end

  def show
    @page = Page.find(params[:id])

    respond_to do |format|
      format.html  # show.html.erb
      format.json  { render :json => @page }
    end
  end
end
class PagesController@pages}
结束
结束
def新
@page=page.new
回应待办事项|格式|
format.html#new.html.erb
format.json{render:json=>@page}
结束
结束
def创建
@页面=页面。新建(参数[:页面])
回应待办事项|格式|
如果@page.save
format.html{重定向到(@page,
:notice=>“页面已成功创建。”)}
format.json{render:json=>@page,
:status=>:created,:location=>@page}
其他的
format.html{render:action=>“new”}
format.json{render:json=>@page.errors,
:status=>:无法处理的_实体}
结束
结束
结束
def秀
@page=page.find(参数[:id])
回应待办事项|格式|
format.html#show.html.erb
format.json{render:json=>@page}
结束
结束
结束
应该是

@page = Page.new(params)
您可以在控制台输出中看到它:

Parameters: {"authenticity_token"=>"...", "title"=>"Untitled Page", "live"=>"1", "content"=>"..."}
如果
参数[:page]
正确,您将看到:

Parameters: {"authenticity_token"=>"...", "page"=>{"title"=>"Untitled Page", "live"=>"1", "content"=>"..."}}

您的控制器希望
params[:page]
是一个散列,其中包含用于创建页面的值。但是,您的表单在顶层提交所有这些参数,正如您从日志文件摘录中看到的那样


您应该更改表单,以便参数显示在
params[:page]
中,例如,标题输入应命名为
page[title]
。如果您使用
form_for
和rails帮助(
f.text_字段
f.check_框
等),您可以免费获得此功能。

您认为您的索引操作正确吗?非常感谢!我通过将属性放在“page”属性中修复了它。不过,Authentity\u token属性必须是顶级的。
Parameters: {"authenticity_token"=>"...", "page"=>{"title"=>"Untitled Page", "live"=>"1", "content"=>"..."}}