@@ -59,7 +59,7 @@ class User < ActiveRecord::Base
59
59
end
60
60
```
61
61
62
- on your controller you could do something like this :
62
+ on your controller you could do any of the following :
63
63
``` ruby
64
64
class UsersController < ApplicationController
65
65
def create
@@ -69,17 +69,16 @@ class UsersController < ApplicationController
69
69
private
70
70
71
71
def user_params
72
- params.require(:user ).permit(avatar: [ :data ] , :username , :email )
72
+ params.require(:user ).permit(avatar: :data , :username , :email )
73
73
end
74
74
end
75
75
```
76
76
77
- Or you could also do:
78
77
``` ruby
79
78
class UsersController < ApplicationController
80
79
def create
81
80
user = User .create(user_params)
82
- user.avatar.attach(params[:avatar ])
81
+ user.avatar.attach(data: params[:avatar ]) # params[:avatar] => 'data:image/png;base64,[base64 data]'
83
82
end
84
83
85
84
private
@@ -90,12 +89,30 @@ class UsersController < ApplicationController
90
89
end
91
90
```
92
91
93
- Here's another option to achieve the same:
94
92
``` ruby
95
93
class UsersController < ApplicationController
96
94
def create
97
95
user = User .create(user_params)
98
- user.avatar = { data: params[:avatar ] }
96
+ user.avatar.attach(avatar_params) # avatar_params => { data: 'data:image/png;base64,[base64 data]' }
97
+ end
98
+
99
+ private
100
+
101
+ def user_params
102
+ params.require(:user ).permit(:username , :email )
103
+ end
104
+
105
+ def avatar_params
106
+ params.require(:avatar ).permit(:data )
107
+ end
108
+ end
109
+ ```
110
+
111
+ ``` ruby
112
+ class UsersController < ApplicationController
113
+ def create
114
+ user = User .create(user_params)
115
+ user.avatar = { data: params[:avatar ] } # params[:avatar] => 'data:image/png;base64,[base64 data]'
99
116
user.save
100
117
end
101
118
@@ -115,7 +132,7 @@ Check the following example:
115
132
class UsersController < ApplicationController
116
133
def create
117
134
user = User .create(user_params)
118
- user.avatar.attach(data: params[:avatar ], filename: ' your_filename' , content_type: ' content/type' , identify: ' false' )
135
+ user.avatar.attach(data: params[:avatar ], filename: ' your_filename' , content_type: ' content/type' , identify: ' false' ) # params[:avatar] => 'data:image/png;base64,[base64 data]'
119
136
end
120
137
121
138
private
0 commit comments