Вопрос по mongoid reference_many, view и контроллерам - PullRequest
1 голос
/ 03 апреля 2011

Я играю с MongoDB в Rails 3 через Mongoid.Я определил классы ниже, но когда я пытаюсь создать новую гиперссылку через представление scaffolded, я получаю сообщение об ошибке.Я считаю, что происходит то, что массив Tags не обрабатывается должным образом.Я использую стандартную платформу контроллера.Что мне нужно сделать, чтобы mongoid знал, как добавлять теги?

class Hyperlink
  include Mongoid::Document
  field :name
  field :url
  embeds_many :comments

  references_many :tags

  validates_presence_of :name, :url
  validates_uniqueness_of :name, :url
end

class Tag
  include Mongoid::Document

  field :name
  validates_uniqueness_of :name
  referenced_in :hyperlink    
end

Ответ контроллера TypeError в HyperlinksController # create

can't convert Symbol into Integer

**Request**

Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"yn5SwZPBIMcpzrGQeO9t3tJ2Y2Q6nlsDBPbI43ahj0k=",
 "hyperlink"=>{"name"=>"Stack Overflow",
 "link"=>"http:://www.stackoverflow.com",
 "tags"=>{"tag"=>"programming"}},
 "commit"=>"Create Hyperlink"}

Ответы [ 2 ]

2 голосов
/ 05 апреля 2011

Попробуйте добавить accepts_nested_attributes_for :tags к HyperLink.

0 голосов
/ 05 апреля 2011

В идеале ваши параметры должны выглядеть примерно так (обратите внимание на изменение в тегах):

Parameters:

{"utf8"=>"✓",
 "authenticity_token"=>"yn5SwZPBIMcpzrGQeO9t3tJ2Y2Q6nlsDBPbI43ahj0k=",
 "hyperlink"=>{"name"=>"Stack Overflow",
 "link"=>"http:://www.stackoverflow.com",
 "tags"=>{"0" => {"name"=>"programming", :id => "xxxx"}}},
 "commit"=>"Create Hyperlink"}

Поскольку jdc уже указал контроллер и код представления, было бы очень полезно фактически указать на проблему.

...