无法将nil转换为确切的数字
我希望用户能够评论其他人的微博,但我不断收到以下错误:无法将nil转换为确切的数字
它来自下面的View / comments / _form文件中的时间戳。 出于某种原因,@ comment.created_at以零返回
查看/评论/ _form :(在每个微博结束时调用此部分)
用户模型:
attr_accessible :name, :email, :password, :password_confirmation #is this secure with password there? attr_protected :admin #attr_protected necessary? has_many :microposts, dependent: :destroy has_many :comments, :through => :microposts, dependent: :destroy
Micropost型号:
attr_accessible :comment #basically the content of the post attr_protected :user_id has_many :comments, dependent: :destroy
评论模型:
attr_accessible :content, :micropost belongs_to :user belongs_to :micropost validates :user_id, presence: true validates :micropost_id, presence: true validates :content, presence: true default_scope order: 'comments.created_at ASC' #is this necessary?
评论控制器:
def create @micropost = Micropost.find_by_id(params[:id]) #is this necessary? @comment = current_user.comments.create(:micropost => @micropost) redirect_to :back end
用户控制器:
def show @user = User.find_by_id(params[:id]) @microposts = @user.microposts.paginate(page: params[:page]) @micropost = current_user.microposts.build @comments = @micropost.comments @comment = current_user.comments.create(:micropost => @micropost) #build, new or create?? end
路线:
resources :users resources :microposts, only: [:create, :destroy] resources :comments, only: [:create, :destroy]
SQL:
“comment”=> {“content”=>“EXAMPLE”}}用户负载(0.8ms)SELECT“users”。* FROM“users”WHERE“users”。“remember_token”=’H09yZpAv5qhmT3ok5fXfnQ’LIMIT 1 Micropost Load(0.7 ms)选择“microposts”。* FROM“microposts”WHERE“microposts”。“id”为空
@comment
很可能是created_at
设置为nil
的新记录
@micropost尚未创建
在@micropost = current_user.microposts.build
之后添加@micropost.save
@micropost = current_user.microposts.build @micropost.save @comments = @micropost.comments @comment = current_user.comments.create(:micropost => @micropost)