在此处插入强制性的“我是 Rails 新手”评论。
TL;DR:无法 .create 或 .new 模型实例
我的基本结构是用户应该能够拥有多个笔记,这些笔记将具有由“回形针”宝石处理的附件。但是,我似乎无法实际创建注释:
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 海报 :)