2012-04-06 10 views
1

Ich benutze mongodb in meiner Rails-Anwendung.Problem mit dynamischen Feldern in MongoDB

nehme ich ein Mongo Modell haben, wie unten

class Product 
include Mongoid::Document 
    field :test, type: String 
    field :link, type: String 
end 

Dann funktioniert es gut

Aber wenn ich fügen Sie diese Felder dynamisch, indem sie in einem lib oder zum Beispiel wie unten in meinem Controller Erzeugung

params[:product][:test]="Test Value" 
params[:product][:link]="Test Link" 

Dann bekomme ich den Fehler wie unten Mongoid Fehler (Screenshot beigefügt) Error ScreenShot

Bitte Hilfe. Danke im Voraus.

Antwort

1

Es gibt einige private Methode test. In meinem Projekt:

> Account.new.test 
NoMethodError: private method `test' called for #<Account:0x007f89e60afd30> 

> Account.new.send :test 
ArgumentError: wrong number of arguments (0 for 2..3) 
+0

'link' ist private Methode zu – MikDiet

+0

auch ich den gleichen Fehler, aber es funktioniert, wenn wir ein Feld explizit ... als' Feld initialisiert haben: test' und 'Feld: link' Warum? gibt es ein weiteres solches Keyword, dass ich 'desc' begegnet bin. kann jemand den Unterschied erklären, warum es bei expliziter Deklaration arbeitet und nicht während dynamischer Felderzeugung? – Rohit

+0

Denn wenn Sie sie als Felder deklarieren, erstellt Mongoid öffentliche Accessoren für Sie – MikDiet

Verwandte Themen