Ruby on rails 参数数目错误(1代表0)错误?轨道

Ruby on rails 参数数目错误(1代表0)错误?轨道,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我在保存对象时遇到问题。我在书签模型中有以下代码: class Bookmark include Mongoid::Document include Mongoid::Timestamps field :owner_req, type: Mongoid field :request_id, type: Mongoid field :corsponding_requests, type: Array belongs_to :user belongs_to :reque

我在保存对象时遇到问题。我在书签模型中有以下代码:

class Bookmark
  include Mongoid::Document
  include Mongoid::Timestamps
  field :owner_req, type: Mongoid
  field :request_id, type: Mongoid
  field :corsponding_requests, type: Array

  belongs_to :user
  belongs_to :request
class << self

    def createBookmark ( title)
      bookmark = self.new
      bookmark[:owner_req] = title[:owner_req] #Here's the error
      bookmark[:request_id] = title[:request_id]
      bookmark[:corsponding_requests] = Array.new
      bookmark[:corsponding_requests].push(*title[:corsponding_requests])
      asd
       if bookmark.save
          bookmark
       end
    end

    def getBookmark(t)
      bookmark = find(t)
      if bookmark
        bookmark
      end
    end
    def getAll
      bookmark = self.all
      if bookmark
        bookmark
      end
    end
  end
end

谢谢大家抽出时间,但我解决了我的问题。所有者请求被更改为user_id,因为当我写入“归属:user”时,它将假定属性名称为user_id

并发布错误跟踪。我已在我的错误中添加了一个屏幕截图@shivamtitle不是属性。它是一个散列,其中存在所有者请求、请求id和响应请求@Deep@james在屏幕截图中,您正在执行
bookmark=self.new(title)
和上面的问题
bookmark=self.new
。我应该相信哪一个?我两个都试过了,但两个都给出了相同的结果error@shivam
  bookmark = Hash.new
      req = User.find(session[:user])

      bookmark["owner_req"] = req[:id]
      bookmark["request_id"] = bookmarked_against_Request[:id]
      bookmark["corsponding_requests"] = Array.new
      bookmark["corsponding_requests"] <<  request_bookmarked[:_id]
      Bookmark.createBookmark(bookmark)
      if request_bookmarked[:favourites_of] == nil
        request_bookmarked[:favourites_of] = Array.new
        request_bookmarked_2[:favourites_of] = Array.new
      end
      if bookmarked_against_Request_2[:favourites] == nil
        bookmarked_against_Request_2[:favourites] = Array.new
        bookmarked_against_Request[:favourites]= Array.new
      end
      bookmarked_against_Request_2[:favourites] << request_bookmarked[:_id]
      request_bookmarked[:favourites_of] << bookmarked_against_Request_2[:_id]
      flash[:notice] = "Request has been bookmarked successfully."
    end
    request_bookmarked.update(Hash['favourites' ,request_bookmarked_2[:favourites]])
    bookmarked_against_Request.update(Hash['favourites' ,bookmarked_against_Request_2[:favourites]])
> ArgumentError - wrong number of arguments (1 for 0): ()
> home/gardezi/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/bundler/gems/mongoid-1a7bbaabf1f0/lib/mongoid/fields/standard.rb:10:in
> `mongoize'   ()
> home/gardezi/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/bundler/gems/mongoid-1a7bbaabf1f0/lib/mongoid/attributes.rb:291:in `typed_value_for'   ()
> home/gardezi/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/bundler/gems/mongoid-1a7bbaabf1f0/lib/mongoid/attributes.rb:174:in `block in write_attribute'   ()
> home/gardezi/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/bundler/gems/mongoid-1a7bbaabf1f0/lib/mongoid/threaded/lifecycle.rb:26:in
> `_assigning'   ()
> home/gardezi/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/bundler/gems/mongoid-1a7bbaabf1f0/lib/mongoid/attributes.rb:170:in `write_attribute'  app/models/bookmark.rb:14:in `createBookmark' 
> app/controllers/requests_controller.rb:217:in `bookmark_request' 
> actionpack (4.2.0) lib/action_controller/metal/implicit_render.rb:4:in
> >`send_action'  actionpack (4.2.0) lib/abstract_controller/base.rb:198:in `process_action'  actionpack
> (4.2.0) lib/action_controller/metal/rendering.rb:10:in
> >`process_action'  actionpack (4.2.0) lib/abstract_controller/callbacks.rb:20:in `block in >process_action' 
> activesupport (4.2.0) lib/active_support/callbacks.rb:117:in `call' 
> activesupport (4.2.0) lib/active_support/callbacks.rb:151:in `block in
> >halting_and_conditional'  activesupport (4.2.0) lib/active_support/callbacks.rb:151:in `block in
> >halting_and_conditional'  activesupport (4.2.0) lib/active_support/callbacks.rb:234:in `block in >halting'