regmiprem
regmiprem

Reputation: 735

How to define has_and_belongs_to association in rails

I am following this video http://railscasts.com/episodes/258-token-fields-revised and i implement this also sucessfully. But now i am using namespace. I have lends_controller inside folder employee inside asset folder. this is my model of lend controller

class Employee::Asset::Lend
  include Mongoid::Document
  include Mongoid::Timestamps
  field :name, type: String
  field :text, type: String
  field :date
  field :asset_tokens
  field :user_id, type: String
  has_and_belongs_to_many :assets
  belongs_to :tags
def asset_tokens=(tokens)
 self.asset_ids = Asset.ids_from_tokens(tokens)
 end
end

Now i have another model asset. There i have to define has and belongs to this lend model also I did this

class Asset
  include Mongoid::Document
  field :name, type: String
  field :description, type: String
  field :serial_number, type: String
  field :status, type: Integer
  field :tag_tokens
  field :quantity, type: Integer
  validates_presence_of :name 
  validates :serial_number,:uniqueness => true

  has_and_belongs_to_many :employee_asset_lends
  has_and_belongs_to_many :tags

  def self.tokens(query)
   assets = where(name: /#{Regexp.escape(query)}/i)


  end

form for lend controller is

<%= f.label :asset_tokens, "Assets" %>
  <%= f.text_field :asset_tokens, data: {load: @employee_asset_lend.assets}%><br>
  <%= f.input :date,:input_html => { :class => "dp1"},:label=> "Lend Date"%>

inside coffescript file for lend.js.coffee

jQuery ->
  $('#employee_asset_lend_asset_tokens').tokenInput '/assets.json'
    theme: 'facebook'
    prePopulate: $('#employee_asset_lend_asset_tokens').data('load')

But it gives error uninitialized constant EmployeeAssetLend from asset views. and from lend view it gives error like undefined methodall_of' for Employee::Asset:Module`

Upvotes: 1

Views: 816

Answers (1)

Arpit Vaishnav
Arpit Vaishnav

Reputation: 4780

pleaes check the right way to make HABTM-has_and_belongs_to_many Assosiation for more details

Upvotes: 2

Related Questions