Ruby on Rails: отправленные формы не будут вставляться в SQL - PullRequest
0 голосов
/ 21 марта 2011

Привет, я столкнулся со странной проблемой с моим приложением, оно не будет сохранено в БД sqlite.Когда я смотрю на журнал, он дает мне это.

Parameters: {"utf8"=>"✓", "authenticity_token"=>"/+...+...=", "product"=>{"title"=>"test", "user_id"=>"1"}, "commit"=>"Create Product"}
  Product Load (0.2ms)  SELECT "products"."id" FROM "products" WHERE ("products"."title" IS NULL) LIMIT 1
  AREL (0.3ms)  INSERT INTO "products" ("title", "body", "created_at", "updated_at", "user_id") VALUES (NULL, NULL, '2011-03-21 09:59:57.546656', '2011-03-21 09:59:57.546656', NULL)

Это, вероятно, новичок, но я не знаю, что делать: /

Ответы [ 2 ]

0 голосов
/ 21 марта 2011

Вам нужно передать хэш params вашему объекту, когда вы создаете его следующим образом:

def create
  @product = Product.new(params[:product]
  if @product.save
  # TODO: handle save errors,eg from failed validations etc
  end

  respond_to do |format| 
    format.html # new.html.erb 
    format.xml { render :xml => @product } 
  end 
end
0 голосов
/ 21 марта 2011

Кажется, он пытается вставить значения NULL для всех полей, которые вы создали. Проблема должна быть в файле контроллера, а не в коде sql.

Вы, вероятно, сохраняете объект, для которого не установлены никакие свойства. Вы создаете свой объект с помощью new или create ? Потому что, если я правильно запомнил create , он принимает хэш параметров и сразу сохраняет объект в базу данных. То есть если вы зайдете Myclass.create (), это не удастся.

Конечно, было бы легче отладить это, если вы вставили свой код контроллера.

Кроме того, вы получаете параметры product из params ['product']? То есть params ['product'] ['title'] или params ['title']?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...