teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

登録されたメンバーのidを取得する方法がわかりません。

2018/03/27 06:56

投稿

koume
koume

スコア458

title CHANGED
File without changes
body CHANGED
@@ -60,4 +60,13 @@
60
60
  def create_staff_year
61
61
  self.staff_year.create(year_check: 2018)----ここでエラー発生。
62
62
  end
63
- ```
63
+ ```
64
+ 追記2:
65
+ コンソールで試したところ
66
+ ```ここに言語を入力
67
+ irb(main):002:0> StaffYear.create(staff_member_id: 5, year_check: 2018)
68
+
69
+ で登録に成功しました。
70
+ ```
71
+ staff_member_id :5で登録できましたが、5の部分を新規登録されたstaff_memberのidを
72
+ 入れる方法を教えていただけないでしょうか?

1

エラー発生について記述しました。

2018/03/27 06:56

投稿

koume
koume

スコア458

title CHANGED
File without changes
body CHANGED
@@ -35,4 +35,29 @@
35
35
  createアクションにstaff_yearsテーブルに登録するようにコードを記述しました。
36
36
  この状態で、メンバー登録はできています。しかし、関連付けられたstaff_yearsテーブルにはレコードができていません。
37
37
 
38
- 記述場所が悪いのか、コード自体が間違っているのかわからないのでどなたか教えていただけないでしょうか?宜しくお願いします。
38
+ 記述場所が悪いのか、コード自体が間違っているのかわからないのでどなたか教えていただけないでしょうか?宜しくお願いします。
39
+
40
+ 追記
41
+ エラーが発生してしまいます。
42
+ ```ここに言語を入力
43
+ StaffYear Load (0.8ms) SELECT `staff_years`.* FROM `staff_years` WHERE `staff_years`.`staff_member_id` = 5 LIMIT 1
44
+ (2.7ms) ROLLBACK
45
+ Completed 500 Internal Server Error in 256ms (ActiveRecord: 12.2ms)
46
+
47
+
48
+
49
+ NoMethodError (undefined method `create' for nil:NilClass):
50
+
51
+ app/models/staff_member.rb:35:in `save_staff_year'
52
+
53
+ ```
54
+ ```ここに言語を入力
55
+ 実行したコード
56
+
57
+ after_create :create_staff_year
58
+
59
+ private
60
+ def create_staff_year
61
+ self.staff_year.create(year_check: 2018)----ここでエラー発生。
62
+ end
63
+ ```