LoginSignup
4
4

More than 5 years have passed since last update.

ActiveScaffoldでreadonly属性を作る

Last updated at Posted at 2014-12-14

管理画面を作るとき便利なActiveScaffold

class As::UsersController < AsController
  active_scaffold :user do |config|
    config.columns = [
      :name,
      :email,
      :address,
      :tel,
    ]
  end
end

こんなかんじのコントローローラーを一個書けば、いい感じの管理画面を生成してくれます。

Anytimes.png

管理画面においては、ユーザーIDも見えているといろいろ便利ですよね。

    config.columns = [
      :id,
      :name,
      :email,

Anytimes 2.png

これで実現できましたが、編集画面でidが変更できてしまうと、うっかりidを変更してしまう事故が起きることが予想されます。

Anytimes 3.png

残念ながら、readonly属性を作れるようにしてほしいという要望は闇に消えてしまったようですが...
(Easy way to define a readonly column would be nice)

が、単に一覧画面でIDを見たい、編集はさせたくないという要望は、編集画面からIDを外すことで実現できます。

class As::UsersController < AsController
  active_scaffold :user do |config|
    config.columns = [
      :id,
      :name,
      :email,
      :address,
      :tel,
    ]
    config.update.columns.exclude :id
  end
end

Anytimes 4.png

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4