0
我有一個mongomapper模型這樣的特定領域:Mongomapper查詢了許多一對多關聯對象
class ChildTemplate
include MongoMapper::Document
plugin MongoMapper::Plugins::IdentityMap
key :name, String, :required => true, :unique => true
key :description, String
key :config, Array
key :used_parameters, Array
many :parameters, :in => :used_parameters
validate :parameters_in_config
def parameters_in_config
found_parameters = Set.new
config.each do |line|
params = line.scan("<([-+*]{2})(.+)\1>")
unless params.empty?
found_parameters |= params.transpose[1]
end
end
unless found_parameters == Parameter.find(used_parameters).fields(:name).to_set
errors.add(:parameters, 'Incorrect')
end
end
end
class Parameter
include MongoMapper::Document
plugin MongoMapper::Plugins::IdentityMap
key :name, String
key :description, String
#more keys
end
的問題是這一行:
unless found_parameters == Parameter.find(used_parameters).fields(:name).to_set
在這裏,我已經建立打開一個名爲found_parameters
的Set
,其中包含所用參數的名稱。爲了進行驗證,我需要確保該設置等於parameter
的name
,其ids
位於used_parameters
陣列中。
它不工作,我已經試過我試過的方式和其他的東西包括:
used_parameters.name
used_parameters[:name]
parameters.name
parameters[:name]
Parameter.find(used_parameters)[:name]
等等
我只是想不出正確的查詢。此外,我總是無法找到合適的mongomapper文檔。在網站上的一切都很簡短,只有幾個例子,特別是對於ruby和mongo作爲一個整體來說,這是非常困難的。
所以,如果有人能解釋更多關於查詢相關文檔的信息,我會很感激。