環境
Rails 5.2.2
Ruby 2.6.0
参考
ほぼこのままですが、Rails5でもできたというのと、一部直しが必要だったのでメモ程度に記事にしました。
https://qiita.com/mogya/items/24561a6fddd6cc018536
手順
既にあるUserモデルに対してscaffoldを生成したい。ただし、adminというネームスペースを付けたい。
つまり、既にあるモデルapp/models/user.rb
に対して、admin/users
とかadmin/users/:id/edit
とかのURLで操作できるように、app/models/admin/users_controller.rb
とかapp/views/admin/users/index.html.erb
とかを生成してほしい。
Userモデルはnameフィールド(文字列型)のみを持っているとします。
参考記事の通りやってみる。
$bin/rails g scaffold_controller admin/user name:string --model-name=user
一部うまくいかなかったので直しました。
edit.html.erb
- <%= link_to 'Show', @user %> |
+ <%= link_to 'Show', [:admin, @user] %> |
show.html.erb
- <%= link_to 'Edit', edit_user_path(@user) %> |
+ <%= link_to 'Edit', edit_admin_user_path(@user) %> |
users_controller.rb
- format.html { redirect_to @user, notice: 'User was successfully created.' }
+ format.html { redirect_to [:admin, @user], notice: 'User was successfully created.' }
※#createと#updateの2カ所
たぶんこれでOK。