2011-09-26 24 views
8

私はコントローラとアクティブな管理者オーバーライドコントローラからそれを実行しようとしましたが、動作させることはできません。Rails 3 Active Admin新しいレコードにプリセット値を追加

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

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

誰でも知っていますか?

今、私は新しい/作成アクションでそれが必要ですが、おそらく編集/更新アクションでも必要になります。

答えて

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 

あなたは同じように他のコントローラのアクションを上書きすることができるはずです。

4

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

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 
+0

が、私はそれを見落とし、「コントローラ」の定義を忘れないでくださいを参照してください。この答えで –

関連する問題