質問編集履歴

9

質問内容の修正

2019/03/05 08:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -96,7 +96,7 @@
96
96
 
97
97
  ```
98
98
 
99
- <% form_option = readonly ? {builder: ReadonlyFormBuider} : {} %>
99
+ <% form_option = readonly ? {builder: ReadonlyFormBuilder} : {} %>
100
100
 
101
101
  <%= form_for @campaign, form_option do |f| %>
102
102
 

8

質問内容の修正

2019/03/05 08:31

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -92,7 +92,7 @@
92
92
 
93
93
  ```
94
94
 
95
- とかいて _form.html から
95
+ とかいて namespace 内のモデルの _form.html から
96
96
 
97
97
  ```
98
98
 
@@ -110,7 +110,7 @@
110
110
 
111
111
 
112
112
 
113
- FormBuilder を継承したクラスをビューで使うにはどこにおいてどうやって呼び出せばいいんでしょうか
113
+ FormBuilder を継承したクラスをnamespace内のビューで使うにはどこにおいてどうやって呼び出せばいいんでしょうか
114
114
 
115
115
 
116
116
 

7

質問内容の修正

2019/03/05 08:24

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -111,3 +111,9 @@
111
111
 
112
112
 
113
113
  FormBuilder を継承したクラスをビューで使うにはどこにおいてどうやって呼び出せばいいんでしょうか
114
+
115
+
116
+
117
+ ReadonlyFormBuider のインスタンスを作るときにパラメーターを追加して
118
+
119
+ readonly 以外にも任意のオプションを追加できるようにすることはできるでしょうか

6

質問内容の修正

2019/03/05 03:44

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -110,4 +110,4 @@
110
110
 
111
111
 
112
112
 
113
- formbuilder クラスはどこにおいてどうやって呼び出せばいいんでしょうか
113
+ FormBuilder を継承したクラスをビューで使うにはどこにおいてどうやって呼び出せばいいんでしょうか

5

質問内容の修正

2019/03/05 03:42

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
 
66
66
 
67
- 追記
67
+ ### 追記
68
68
 
69
69
 
70
70
 

4

追記

2019/03/05 03:41

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -59,3 +59,55 @@
59
59
  のような感じでこのブロック内だけ text_field をオーバーライドするみたいなことはできないでしょうか
60
60
 
61
61
  パーシャルビューの中にすべてオプションを受け渡してつけてまわるのがすごく冗長な気がして…
62
+
63
+
64
+
65
+
66
+
67
+ 追記:
68
+
69
+
70
+
71
+ https://guides.rubyonrails.org/form_helpers.html#customizing-form-builders
72
+
73
+
74
+
75
+ これを使えばできそうかなと思ったんですが
76
+
77
+ 試しに app/helpers/readonly_form_builder.rb に
78
+
79
+ ```
80
+
81
+ class ReadonlyFormBuilder < ActionView::Helpers::FormBuilder
82
+
83
+ def text_field(attribute, options={})
84
+
85
+ options['readonly'] = true
86
+
87
+ super
88
+
89
+ end
90
+
91
+ end
92
+
93
+ ```
94
+
95
+ とかいて _form.html から
96
+
97
+ ```
98
+
99
+ <% form_option = readonly ? {builder: ReadonlyFormBuider} : {} %>
100
+
101
+ <%= form_for @campaign, form_option do |f| %>
102
+
103
+ ```
104
+
105
+ という感じでよんでみたんですが
106
+
107
+ `uninitialized constant ActionView::CompiledTemplates::ReadonlyFormBuider`
108
+
109
+ となってしまいます
110
+
111
+
112
+
113
+ formbuilder クラスはどこにおいてどうやって呼び出せばいいんでしょうか

3

質問内容の修正

2019/03/05 03:40

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -23,3 +23,39 @@
23
23
 
24
24
 
25
25
  みたいにかなり冗長になってしまうのできれいにかく方法はないでしょうか
26
+
27
+
28
+
29
+ ### 追記
30
+
31
+
32
+
33
+ ```
34
+
35
+ <%= form_for(@user) do |f| %>
36
+
37
+
38
+
39
+ <%
40
+
41
+ def f.text_field *args, **option
42
+
43
+ option[:readonly] = true if true action_name == :show
44
+
45
+ f.text_field args, option
46
+
47
+ end
48
+
49
+ %>
50
+
51
+
52
+
53
+ <%= f.text_field ... %>
54
+
55
+ ```
56
+
57
+
58
+
59
+ のような感じでこのブロック内だけ text_field をオーバーライドするみたいなことはできないでしょうか
60
+
61
+ パーシャルビューの中にすべてオプションを受け渡してつけてまわるのがすごく冗長な気がして…

2

質問内容の修正

2019/03/01 08:54

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  show の場合だけフォームメソッドに全部 readonly: true を付けるみたいなことをやりたい場合
8
8
 
9
- 特定の条件で hash の中に要素を追加するって3項演算子で短くかけないので
9
+ 特定の条件で hash の中に要素を追加するって3項演算子で短くかけなくて
10
10
 
11
11
 
12
12
 

1

質問内容の修正

2019/03/01 06:15

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -16,7 +16,7 @@
16
16
 
17
17
  option[:readonly] = true if action_name == :show
18
18
 
19
- f.xxx_field, option
19
+ f.text_field, option
20
20
 
21
21
  ```
22
22