質問編集履歴
1
やったことの追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -56,6 +56,38 @@
|
|
56
56
|
|
57
57
|
|
58
58
|
|
59
|
+
usersのindexのビューにエクスポートボタンを設置
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
app/controllers/users_controller.rb
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
```ここに言語を入力
|
68
|
+
|
69
|
+
def index
|
70
|
+
|
71
|
+
@users = User.all
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
respond_to do |format|
|
76
|
+
|
77
|
+
format.html
|
78
|
+
|
79
|
+
format.csv { send_data @users.generate_csv, filename: "users-#{Time.zone.now.strftime("%Y%m%d%S")}.csv" }
|
80
|
+
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
```
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
|
90
|
+
|
59
91
|
【テーブル情報】
|
60
92
|
|
61
93
|
```ここに言語を入力
|
@@ -85,3 +117,51 @@
|
|
85
117
|
end
|
86
118
|
|
87
119
|
```
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
##試してみたこと
|
124
|
+
|
125
|
+
app/models/user.rb内の`self.attributes`内で属性名を取り出すのではなく値を直接取り出して、0落ちしてしまう値に対して[こちら](https://qiita.com/shunichi_com/items/bfcd30a10aa1bd5ce4c1)で紹介されている0落ち対策を行おうとしましたが、**NoMethodError**となりました。
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
app/models/user.rb
|
130
|
+
|
131
|
+
```ここに言語を入力
|
132
|
+
|
133
|
+
def self.csv_attributes
|
134
|
+
|
135
|
+
[self.name, %Q{="#{self.tel}"}, self.email, %Q{="#{self.post_code}"}, self.prefectures, %Q{="#{self.address_1}"}, %Q{="#{self.address_2}"}, %Q{="#{self.room_number}"}, self.created_at_date, self.updated_at_date, self.orders_counts, self.order_rackets_counts, self.order_amounts]
|
136
|
+
|
137
|
+
end
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
def self.generate_csv
|
142
|
+
|
143
|
+
csv_columns = ["名前", "電話番号", "メールアドレス", "郵便番号", "都道府県", "住所1", "住所2", "住所3", "登録日時", "最終更新日時"]
|
144
|
+
|
145
|
+
CSV.generate(encoding: Encoding::SJIS, row_sep: "\r\n", force_quotes: true) do |csv|
|
146
|
+
|
147
|
+
csv << csv_columns
|
148
|
+
|
149
|
+
all.each do |user|
|
150
|
+
|
151
|
+
# csv << csv_attributes.map{ |attr| user.send(attr) }
|
152
|
+
|
153
|
+
csv << csv_attributes
|
154
|
+
|
155
|
+
end
|
156
|
+
|
157
|
+
end
|
158
|
+
|
159
|
+
end
|
160
|
+
|
161
|
+
```
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
【エラー画面】
|
166
|
+
|
167
|
+
![イメージ説明](8a841a5ac6c4d69b83eec3fb658b2252.png)
|