0

Devise用に作成したコントローラーがあります。これを使用して/devise/registration/内にさらにいくつかのページを追加します。

class RegistrationsController < Devise::RegistrationsController
  skip_before_filter :detect_account_ended

  def import
    @title = "Import customers from Quickbooks"
  end

  def categories
    @title = "Edit Categories"
    @categories = current_user.categories

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @categories }
    end
  end

  protected

    def after_update_path_for(resource)
      edit_user_registration_path
    end
end

ルートを作成しました

  devise_for :users, 
    :path_names => { 
      :sign_up => "register", 
      :destroy => "logout" },
    :controllers => { 
      :registrations => :registrations } do
        get '/users/sign_out' => 'devise/sessions#destroy'
        get '/users/import' => 'devise/registrations#import'
        get '/users/categories' => 'devise/registrations#categories'
  end

そして、ビュー。ビューは正しく表示されますが、登録コントローラーから渡したオブジェクトはビューに移動しません。これらのオブジェクトがビューに渡されるようにこれを修正するにはどうすればよいですか?

4

1 に答える 1

0

次のように、ビューに直接アクセスしてみてください。

current_user.categories

ビューでも使用できるようcurrent_userに、@title については、変数として渡す必要はありません。必要なテキストをビューに直接追加することもできます。

于 2012-06-14T06:54:58.393 に答える