通过Lynda.com在Rails 5上的课程,我遇到了一个小故障。不知道问题是否是我的设置,两者之间的差异(我相信教练使用的是v5.0.0,而我使用的是v5.1.4),我做错了,或者rails控制台中有一个bug。
课程是第六章协会,第二节一对一协会.课程使用两个表格:主题和页面。他们的模型是:
class Subject < ApplicationRecord
has_one :page
# and a bunch of scopes from an earlier lesson
end
和:
class Page < ApplicationRecord
belon
我正在用Mysql生成模型。它正确地生成了一个外键集合,但不是相反的.,这应该是“精心设计的”,还是我做错了什么?
伪码警报
User:
UserId pk
LocationId fk //User location
Location
LocationId pk
UserId fk //Location owner
生成的代码:
class User() {
hasMany('Location') //for locations owned by the user
//BUT NOT THIS ONE:
//h
在Rails 3.2中有一个类,我们将调用Foo --另一个类的has_one,名为Bar (都是ActiveRecords),如下所示:
class Bar < ActiveRecord::Base
attr_accessible :name
end
class Foo < ActiveRecord::Base
has_one :bar
def bar_name
if bar
bar.name
else
nil
end
end
当我试图调用bar_name时,我会得到一个mysql错误,如下所示:
ActiveRecor
假设我有三个表(Patients、Doctors和Medicines)。Patients表具有引用Doctors表中的列的FK约束,类似地,Medicines表具有引用Patients表中的列的FK约束。现在,当我尝试使用以下命令删除患者时
//Delete From Patient Table
javax.persistence.Query query = manager.createQuery("DELETE From PatientEnroll e WHERE e.no =:arg1");
int val = Integer.parseInt(no);
我正在将应用程序更新到Rails3,并且在创建自定义外键时遇到了问题。我有这样的东西:
class Product < ActiveRecord::Base
belongs_to :owner, :class_name => 'User'
...
end
class User < ActiveRecord::Base
has_many :products
...
end
class ProductsController < ApplicationController
before_filter :authenticate_user!
我已经阅读和查看了很多关于EF的资源,但是--有时--我看到一些例子遗漏了一个特定实例的外键id。其他时候,他们会把它放进去。把它留在里面或拿出来会有什么影响?
例如:
public class Student
{
public int TeacherID { get; set; }
[Required]
public Teacher Teacher { get; set; }
}
public class Teacher
{
public virtual List<Student> Students { get; set; }
}
与
public class
在我的场景中,我有乔布斯、公司和部门。
单个工作可能只有一个公司;公司可能有多个工作(一对多)
单个职务可能有多个部门;部门可能有多个职务(多到多)。
我只想用外交钥匙来建立关系。为此,我具有外键属性和延迟导航属性。
这是我的课程:
public class JobEntity
{
[Key]
public int Id
{
get;
set;
}
public Companies CompanyId
{
get;
set;
}
//Navigation
mysql中有两个表,如下所示:
Product:
ID(PK) Details
AB23CD etc
EF45GH etc
AB34CD etc
more rows...
Client:
P1 P2 Client ClientCallsThis
AB CD X X1
EF GH Y Y1
EF GH X X2
more rows...
P1和P2引用Product列中的前两个和最后两个字符。
我想