1

アプリケーションに 2 つのモデルがあります ( Rails 3.2.5 を使用)

1) ユーザー(デバイスから)

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me

  # attr_accessible :title, :body
  has_many :profiles
end

2) プロファイル。

class Profile < ActiveRecord::Base

  belongs_to :user
  attr_accessible :description, :name, :product, :image, :price
  mount_uploader :image, ImageUploader
  validates_presence_of :name, :product, :image, :price
end

1 人のユーザーのプロファイルが多数あります。GOAL : ログイン時に、各ユーザーに関連するプロファイルのみを表示したい。

Rails のドキュメントを読むことで、ユーザーの新しいプロファイルを作成できます (以下のコード)。

コントローラーのインデックス、表示、新規作成、編集、作成、更新、破棄、または表示を定義するのを誰かが手伝ってくれませんか。

def new
  @profile = @user.Profile.new

  respond_to do |format|
    format.html # new.html.erb
    format.json { render json: @profile }
  end
end
4

1 に答える 1

0

@userが初期化されておらず nil に等しいため、このエラーが発生しています。そのため、という名前のメソッドがありません。現在のユーザーを取得するには、devise のヘルパーをprofile使用する必要があります。current_user@user = current_user

于 2012-12-31T17:37:51.383 に答える