I have two models: User and FutureAuction
class FutureAuction < ActiveRecord::Base
has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
has_and_belongs_to_many :future_auctions
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
Also I have migration:
class CreateUsersAuctions < ActiveRecord::Migration
def change
create_table :users_auctions, id: false do |t|
t.belongs_to :future_auction, index: true
t.belongs_to :user, index: true
end
end
end
So, when I try call user.future_auctions I get error 'undefined method future_auction for '. What's problem? My schema
ActiveRecord::Schema.define(version: 20151122192558) do
enable_extension "plpgsql"
create_table "future_auctions", force: :cascade do |t|
t.string "title", null: false
t.string "img_url", default: ""
t.float "price", null: false
t.boolean "is_ended", default: false, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.datetime "start_date", null: false
t.datetime "end_date", null: false
end
create_table "users", force: :cascade do |t|
t.boolean "is_admin", default: false, null: false
t.string "email", default: "", null: false
t.string "encrypted_password", default: "", null: false
t.string "reset_password_token"
t.datetime "reset_password_sent_at"
t.datetime "remember_created_at"
t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at"
t.inet "current_sign_in_ip"
t.inet "last_sign_in_ip"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "login", null: false
t.integer "rates_count", default: 0
end
add_index "users", ["email"], name: "index_users_on_email", unique: true, using: :btree
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, using: :btree
create_table "users_auctions", id: false, force: :cascade do |t|
t.integer "future_auction_id"
t.integer "user_id"
end
add_index "users_auctions", ["future_auction_id"], name: "index_users_auctions_on_future_auction_id", using: :btree
add_index "users_auctions", ["user_id"], name: "index_users_auctions_on_user_id", using: :btree
I call this in erb file like this
<% if current_user.future_auctions.empty? %>
or I call this when I want get user's login
<%= future_auction.users.last.login %>
In both ways I get error