2

UserとMemberの2つのテーブルがあり、関係はInuserです。

has_one:member、:class_name =>'User :: 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

これは、目に見えない文字 (空白ではない) が原因である可能性があります。あなたの構文は問題ないようですが、エディターで非表示を表示できる場合 (たとえば、テキストメイトで、[表示] > [非表示を表示] に移動して、それを実行してみてください。空白の代わりに非表示を挿入することがあります。

私が話していることの印象を与えるために:

これは見えないものです

ここに画像の説明を入力

これは目に見えないものです。通常モードでは表示されない不可視のトローチは、構文エラーを引き起こします。

ここに画像の説明を入力

于 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 keyusers

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 に答える