ここに必須の「私は Rails 初心者です」というコメントを挿入してください。
TL;DR: モデルの .create または .new インスタンスを作成できません
私の基本的な構造は、ユーザーが「ペーパークリップ」gem によって処理される添付ファイルを持つ複数のメモを持つことができるようになっているということです。ただし、実際にメモを作成することはできないようです:
undefined method `[]' for nil:NilClass
def create
@user = User.find(params[:user_id])
@note = @user.notes.create(params[:note].permit(:topic, :class, :content))
redirect_to user_path(@user)
end
これは Note Controller からのもので、@user.notes.create を使用する行でエラーが発生します。私が問題を煮詰めたのは、メモが最初は空で、何らかの理由で空のメモ配列で「作成」呼び出しが失敗していることです。興味深いことに、使用する空のメモをインスタンス化しようとすると、Note.new も同じエラーで失敗します。
参照用モデル:
class Note < ActiveRecord::Base
belongs_to :user
has_attached_file :content,
:storage => 's3',
:bucket => ENV['AWS_BUCKET'],
:path => "uploads/:attachment/:id/:styles.:extension",
:styles => {
:medium => "300x300>",
:thumb => "100x100>" },
:s3_credentials => {
:access_key_id => ENV['AWS_ACCESS_KEY_ID'],
:secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'] },
:s3_permissions => 'public-read'
end
class User < ActiveRecord::Base
has_many :notes
validates_presence_of :username
validates_presence_of :email
validates_presence_of :school
validates_format_of :email, :with => /\A[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9] {2,4}\z/i
end
初めてのRailsユーザー、初めてのStack Exchangeポスターなど、さらに情報が必要な場合はお知らせください:)