回答編集履歴

1

説明を追加しました

2017/10/04 14:31

投稿

mingos
mingos

スコア4025

test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
 
9
- ところで、このコードではMylibraryクラスのインスタンス変数である@sampleとか@nameは外部から参照できません。
9
+ ところで、このコードではMylibraryクラスのインスタンス変数である@sampleとか@nicknameは外部から参照できません。
10
10
 
11
11
  前回説明したように、インスタンス変数を外部(コントローラなど)で参照するには、ゲッターメソッドが必要なのでした。
12
12
 
@@ -115,3 +115,73 @@
115
115
  rubyにおいてクラスのインスタンス変数(@がついた変数)は外部からは原則アクセスできないので、必ずゲッターメソッドが必要です。
116
116
 
117
117
  コントローラの@変数が、ビューから参照できる事のほうが例外なのです。
118
+
119
+
120
+
121
+ ちなみにMylibraryの中にコントローラから参照したい変数が複数あるのであれば、その文だけゲッターを追加します。
122
+
123
+
124
+
125
+ ```ruby
126
+
127
+ class Mylibrary
128
+
129
+
130
+
131
+ def sample
132
+
133
+ sponsor = Customer.find(1)
134
+
135
+ @sample = sponsor. sponsor1
136
+
137
+ @nickname = sponsor.nickname
138
+
139
+ end
140
+
141
+
142
+
143
+ def nickname
144
+
145
+ @nickname
146
+
147
+ end
148
+
149
+
150
+
151
+ def sample
152
+
153
+ @sample
154
+
155
+ end
156
+
157
+
158
+
159
+ end
160
+
161
+ ```
162
+
163
+
164
+
165
+ そして、コントローラでは、Mylibrary.newしたものをインスタンス変数(ここでは@mylib)に入れます。
166
+
167
+ これなら、ビューで、@mylib.nicknameとか、@mylib.sampleと使う事が出来ます。
168
+
169
+ ```ruby
170
+
171
+ SampleController < ApplicationController
172
+
173
+
174
+
175
+ def sample
176
+
177
+ @mylib = Mylibrary.new
178
+
179
+ @mylib.sample
180
+
181
+ end
182
+
183
+
184
+
185
+ end
186
+
187
+ ```