Folks Tôi đang cố gắng sử dụng bản ghi hoạt động mà không có đường ray và dường như không thể làm cho has_many hoạt động bình thường. Ive không bao giờ thử sử dụng bản ghi hoạt động mà không có đường ray. Tôi có thể truy vấn từ các bảng đơn nhưng các mối quan hệ dường như không hoạt động. Bất cứ ai có thể có một cái nhìn nhanh chóng và xem nếu im thiếu bất cứ điều gì. Dưới đây là sơ khaiCách sử dụng bản ghi hoạt động không có đường ray
#!/usr/bin/ruby
require 'rubygems'
gem 'activerecord'
require 'sqlite3'
require 'active_record'
ActiveRecord::Base.establish_connection(
:adapter => 'sqlite3',
:database => 'test.db'
)
class User < ActiveRecord::Base
has_many :problems
end
class Problem < ActiveRecord::Base
belongs_to :users
end
def show_single_item
pr = Problem.find(:first)
puts "showing first problem from the db below", pr.desc
end
def show_all_items
pr = Problem.find(:all)
puts "showing all problems from the db below"
pr.each do |a|
puts a.desc
end
end
def check_has_many
user = User.find(:first)
puts user.problem.desc
end
# run some methods
show_single_item # works
show_all_items # works
check_has_many # not working
------
here is the schema of users and problems from the database
sqlite> .schema users
CREATE TABLE "users" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "first_name" varchar(255), "last_name" varchar(255));
sqlite> .schema problems
CREATE TABLE "problems" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "user_id" integer, "desc" varchar(255));
and some selects to show some data from the tables
sqlite> select * from users;
2|mike|smit
3|mike|wilson
sqlite> select * from problems;
1||first problem
2||it went
3||this is a new problem
4||some more junk data
và đây là lỗi
ruby-1.8.7-p352/gems/activemodel-3.2.3/lib/active_model/attribute_methods.rb:407:in `method_missing': \
undefined method `problem' for #<User id: 2, first_name: "mike", last_name: "smit"> (NoMethodError)
from /home/wileybd/.rvm/gems/ruby-1.8.7-p352/gems/activerecord-3.2.3/lib/active_record/attribute_methods.rb:148:in `method_missing'
from ./main.rb:38:in `check_has_many'
from ./main.rb:44
bất kỳ trợ giúp sẽ được đánh giá cao.
Nếu bạn đang chạy bản ghi hoạt động 3.2.3 (có vẻ như nó) Tôi khuyên bạn nên nâng cấp ruby fro 1.8.7 lên 1.9.3 sử dụng RVM –