8

コントローラーとアクティブな管理者オーバーライド コントローラーから実行しようとしましたが、機能しません。

ユーザーが Web サイトを作成します。current_user には id 属性があります ウェブサイトには user_id 属性があります

したがって、新しい Web サイトを作成するときに、current_user.id を website.user_id に追加します。私はできません。

誰でも方法を知っていますか?

今のところ、新規/作成アクションで必要ですが、おそらく編集/更新アクションでも必要になるでしょう。

4

3 に答える 3

12

これは私にとってはうまくいくようです:

ActiveAdmin.register Website do

  controller do
    # Do some custom stuff on GET /admin/websites/*/edit
    def edit
      super do |format|
        # Do what you want here ...
        @website.user = current_user
      end
    end
  end

end

同じ方法で他のコントローラー アクションをオーバーライドできるはずです。

于 2011-10-20T22:47:36.310 に答える
4

コントローラーに「新しい」メソッドを追加する必要があります。「new」メソッドは、フォームに渡される空の Web サイト オブジェクトを作成します。デフォルトの「new」メソッドは、空の @website オブジェクトを作成するだけです。「new」メソッドは空のオブジェクトを作成し、ユーザーの値を現在のユーザーに初期化する必要があります。

  ActiveAdmin.register Website do

  controller do
    # Custom new method
    def new
      @website = Website.new
      @website.user = current_user
      #set any other values you might want to initialize
    end
  end
于 2013-05-31T12:24:47.163 に答える