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

質問編集履歴

3

補足

2016/03/17 05:37

投稿

mikan1110
mikan1110

スコア15

title CHANGED
@@ -1,1 +1,1 @@
1
- user_helper.rbのメソッドをcareer_decorator.rbに移動させたい
1
+ user_helper.rbのメソッドをcareer_decorator.rbに移動する方法
body CHANGED
@@ -62,5 +62,12 @@
62
62
 
63
63
  careerがtermメソッドを持っていないことはなんとなくわかっていますがどうしたら良いのかわかりません。
64
64
 
65
+ 自分なりの考え
66
+ - helperからdecoratorに該当メソッドを移動する時にコピペだけだとだめっぽい=>decoratorのメソッドを変更するのか
67
+ - モデルのアソシエーション操作が必要なのか?
68
+ - decorator.rbは手打ちではなくコマンドで作成しないといけないのか??=> rails g decorator careerとやったらgem周りでエラーが出ました
69
+ - careerオブジェクトがtermメソッドを持っていない
70
+ - users_controller.rbのshowにcareerのインスタンスを作成する必要がありそう
65
71
 
72
+
66
73
  ヒントいただければ幸いです。

2

補足

2016/03/17 05:37

投稿

mikan1110
mikan1110

スコア15

title CHANGED
File without changes
body CHANGED
@@ -36,7 +36,30 @@
36
36
  td = career.title
37
37
 
38
38
  ```
39
+ user_helper.rb(termとdestance_of_termメソッドをcareer_decorator.rbに移動したい)
40
+ ```
41
+ module UsersHelper
39
42
 
43
+ def term(career)
44
+ start_date = l(career.start_date, format: :term)
45
+
46
+ if career.end_date.blank?
47
+ "#{start_date} - #{t('date.formats.ongoing')}"
48
+ else
49
+ "#{start_date} - #{l(career.end_date, format: :term)}"
50
+ end
51
+ end
52
+
53
+ def distance_of_term(career)
54
+ if career.end_date.blank?
55
+ t('datetime.distance_in_words.ongoing')
56
+ else
57
+ distance_of_time_in_words(career.start_date, career.end_date)
58
+ end
59
+ end
60
+
61
+ ```
62
+
40
63
  careerがtermメソッドを持っていないことはなんとなくわかっていますがどうしたら良いのかわかりません。
41
64
 
42
65
 

1

補足

2016/03/17 05:07

投稿

mikan1110
mikan1110

スコア15

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,6 @@
1
1
  もともとuser_helper.rbに記述していたメソッドを新しく作成したcareer_decorator.rbに移動したいのですが、undefined method `term' for #<Career:0x007feba8b82130>のエラーがでます。
2
2
  いくら考えて、実行しても改善できないので質問させていただきました。
3
-
3
+ 以下は現状のコードです
4
-
5
4
  career_decorator.rb
6
5
  ```
7
6
  module CareerDecorator