0

在 Rails 控制台上,我正在尝试调用

@invoice = Invoice.all

它返回了一些对象,例如

<Neo4j::Traversal::Traverser:0x817382>

但是当我试图像这样循环对象时

@invoice.each { |t| p t.number }

我得到了零,但数据库包含发票数据。

发票类

class Invoice < Searchable

include Neo4jrb::Paperclip

include LinkableEntity

include HeadsupNotify

enable_optimistic_locking

before_destroy :verify_links, :prepend => true

before_destroy :destroy_invoice_items

property :number, :type => :string

property :currency, :default => Money.default_currency.to_s

property :date, :pay_by_date, :type => :date

property :purchase_order_number

property :settle, :default => false

property :link_1, :link_2, :type => :string

index :number, :type => :fulltext

domain_property :details

money_property :total_cost, :receivable_amount

attr_protected :total_cost, :receivable_amount

attr_accessor :delink_receipt

validates :total_cost, :numericality => {:greater_than_or_equal_to => 0}

validates :receivable_amount, :numericality => {:greater_than_or_equal_to => 0}

validates :date,:number, :customer_id, :event_id, :project_id, :department_id, :brand_id, :premise_id, :user_id, :currency, :presence => true

validates :link_1, :length => { :maximum => 250 }

validates :link_2, :length => { :maximum => 250 }

validate :number_uniqueness

validate :invoice_items_present

validate :invoice_items_currency

validate :issue_credit_notes_valid

validate :pay_by_date_valid, :unless => "date.nil?"

validate :check_not_linked, :on => :update

has_one(:event).from(Event, :invoices_for_event)

has_one(:project).from(Project, :invoices_for_project)

has_one(:department).from(Department, :invoices_for_department)

has_one(:brand).from(Brand, :invoices_for_brand)

has_one(:premise).from(Premise, :invoices_for_premise)

has_one(:user).to(User)

has_one(:customer).from(Customer, :invoices_for_customer)

alias :party :customer

has_n(:invoice_items).to(InvoiceItem)

has_n(:receipts).from(Receipt, :paid_invoices)

has_n(:issue_credit_notes).from(IssueCreditNote, :credit_notes_for_invoice)

has_one(:invoices_for_settle).to(Settle)

links :receipts, :issue_credit_notes,:invoices_for_settle

has_neo4jrb_attached_file :photo

{:customer => :name, :event => :name, :department => :name, :project => :name, :brand => :name, :premise => :name, :user => :email}.each do |target, method| delegate method, :to => target, :prefix => true, :allow_nil => true end

accepts_id_for :customer, :event, :project, :department, :brand, :premise, :user

accepts_nested_attributes_for :invoice_items, :allow_destroy => true

validates_associated :invoice_items

validates :customer_name, :presence => true, :length => { :maximum => 100 }

validates :event_name, :presence => true, :length => { :maximum => 100 }

validates :premise_name, :presence => true, :length => { :maximum => 100 }

validates :project_name, :presence => true, :length => { :maximum => 100 }

validates :brand_name, :presence => true, :length => { :maximum => 100 }

validates :department_name, :presence => true, :length => { :maximum => 100 }

validates :link_1, :length => { :maximum => 250 }

validates :link_2, :length => { :maximum => 250 }

after_validation :set_total_cost

serialize :methods => :invoice_items

before_validation :delink

谁能帮我解决这个问题?

提前致谢。

4

1 回答 1

1

我不确定如何使用 Ruby On Rails 执行此操作,但如果您的 Invoice 对象(节点)位于 lucene 全文索引中,则可以使用 Cypher 查询来返回所有 Invoice。

就像是:
START invoices=node:Invoices('name: *') RETURN invoices;

于 2013-01-04T06:30:22.257 回答