2

我有 2 个表 User 和 Member 并且关系是 In user

has_one :member, :class_name => 'User::Member' Member belongs_to :user

我正在尝试使用控制台插入数据,并且正在使用此代码

 u = User.create(
    :group         => UserGroup.find_by_slug(:members),
    :first_name    => 'abc',
    :last_name     => 'fgh',
    :company_name  => 'xyz',
    :email         => 'test@test.com',
    :password      => '123456',
    :password_confirmation => '123456'
    )   
 m = User::Member.create(
    :user           => u,
    :pricing_plan   => PricingPlan.order('RANDOM()').first,
    :state          => UserState.order('RANDOM()').first,
    :industry       => Industry.order('RANDOM()').first,
    :fy_start_month => 7
    )

它抛出这个错误

语法错误,意外的 tIDENTIFIER,需要 $end ) m = User::Member.create(

我想知道我的语法有什么问题。提前致谢

4

3 回答 3

2

这可能是由于不可见的字符(不是空格)。您的语法似乎没问题,但是如果您的编辑器允许您显示不可见的内容(例如,在 textmate 中,转到查看 > 显示不可见内容,请尝试这样做。有时我会插入不可见内容而不是空格。

为了给你一个印象,我在说什么:

这是隐形的隐藏

在此处输入图像描述

这是无形的显示。您在正常模式下看不到的隐形菱形会导致语法错误:

在此处输入图像描述

于 2012-10-15T07:35:43.620 回答
0

尝试这个

在您的用户模型中

  has_one :member
  attr_accessible :member_attributes
  accepts_nested_attributes_for :member

在您的会员模型中

  belongs_to :user

然后在您的控制台和表单中尝试

user = User.create(
  :group         => UserGroup.find_by_slug(:members),
  :first_name    => 'abc',
  :last_name     => 'fgh',
  :company_name  => 'xyz',
  :email         => 'test@test.com',
  :password      => '123456',
  :password_confirmation => '123456'
 )

user.build_member(
 :pricing_plan   => PricingPlan.order('RANDOM()').first,
 :state          => UserState.order('RANDOM()').first,
 :industry       => Industry.order('RANDOM()').first,
 :fy_start_month => 7
)

或者

member = Member.create(
  :user_id           => user.id,
  :pricing_plan   => PricingPlan.order('RANDOM()').first,
  :state          => UserState.order('RANDOM()').first,
  :industry       => Industry.order('RANDOM()').first,
  :fy_start_month => 7
)
于 2012-10-15T07:40:25.463 回答
0

我假设user_id是您的foreign key哪个与users表格相关联。如果是这样,请使用以下

m= Member.create(
    :user_id           => u.id,
    :pricing_plan   => PricingPlan.order('RANDOM()').first,
    :state          => UserState.order('RANDOM()').first,
    :industry       => Industry.order('RANDOM()').first,
    :fy_start_month => 7
    )
于 2012-10-15T07:33:40.113 回答