質問編集履歴

2

説明追加

2016/05/15 03:58

投稿

TakuhiroFuji
TakuhiroFuji

スコア10

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,11 @@
24
24
 
25
25
 
26
26
 
27
+ 前提としてhogeはデータベースに持っていないカラムで、
28
+
29
+ mogeはデータベースに持っているカラムです。
30
+
27
- 以下のようなコードでattr_accessorにない場合は、mogeが取得されますが
31
+ 以下のようなコードでは、mogeが1で取得されますが
28
32
 
29
33
 
30
34
 
@@ -52,13 +56,15 @@
52
56
 
53
57
 
54
58
 
59
+ どうやらデータベースのカラムで持っていなくて、attr_accessorにある場合は
60
+
55
- どうやらクエリの結果ではなく、このインスタンスのhogeにアクセスしているらしく
61
+ クエリの結果で上書きするのではなく、このインスタンスのhogeにアクセスしているらしく
56
62
 
57
63
  nilになってしまいました。
58
64
 
59
65
 
60
66
 
61
- この場合、hogeを保存するには以下のようにしないととしなといけないのでしょうか?
67
+ この場合、hogeを保存するには以下のようにしないといけないのでしょうか?
62
68
 
63
69
 
64
70
 

1

補足

2016/05/15 03:58

投稿

TakuhiroFuji
TakuhiroFuji

スコア10

test CHANGED
File without changes
test CHANGED
@@ -77,3 +77,37 @@
77
77
 
78
78
 
79
79
  ちなみにバージョンはRails 4.1.4、ruby 2.1.2p95です。
80
+
81
+
82
+
83
+ ###補足
84
+
85
+ ```
86
+
87
+ App.select("1 AS hoge").where(:app_id => 1).first[:hoge]
88
+
89
+ ```
90
+
91
+ で取得しろってことですかねえ。。
92
+
93
+
94
+
95
+ カラムhogehogeがある場合
96
+
97
+ ```
98
+
99
+ App.select("1234 AS hogehoge").where(:app_id => 1).first[:hogehoge]
100
+
101
+ ```
102
+
103
+ でも
104
+
105
+
106
+
107
+ ```
108
+
109
+ App.select("1234 AS hogehoge").where(:app_id => 1).first.hogehoge
110
+
111
+ ```
112
+
113
+ でも1234になるのに。。