1
class Department < ActiveRecord::Base

attr_accessible :Department_Id, :DepartmentName,:LocationID
set_primary_key :Department_Id 
has_many :Employee

end

レールコンソール:

dept=Department.find(50)
dept.Employee 
SELECT `employees`.* FROM `employees` WHERE `employees`.`Department_Id` IS NULL

where句にNULLを追加している理由、50が表示されることを期待していました。何が間違っていますか

4

2 に答える 2

0

ルビーでは、大文字で始まる変数は定数変数です。コードを次のように変更する必要があります。

class Department < ActiveRecord::Base

attr_accessible :department_id, :department_name,:location_id
has_many :employees

end

更新:私はいくつかの例を挙げました。それに応じて、すべての変数、データベースの列名などを変更する必要があります。すべてがルールに準拠していることを確認してください。定数変数は大文字とローカル変数で始まり、インスタンス変数はすべて小文字で、単語はダッシュで区切られます。

コードがルールに準拠している場合は、belongs_toアソシエーションを呼び出しset_primary_keyて設定する必要はありません。foreign_key

于 2012-11-28T00:07:59.637 に答える
0

適切な規則に従う必要があります。大文字の変数は定数変数を意味します。次のようにしてみてください

class Department < ActiveRecord::Base

  attr_accessible :Department_Id, :DepartmentName,:LocationID
  set_primary_key :Department_Id 
  has_many :employee

end

またはあなたがするならさらに良い

class Department < ActiveRecord::Base

  attr_accessible :department_id, :department_name,:location_id
  set_primary_key :department_id 
  has_many :employee

end
于 2012-11-28T01:30:47.333 に答える