Ruby on rails 本地创建工作,但不在Heroku上。ActiveRecord::UnknownAttributeError(未知属性:用户id)
用户只有在登录后才能创建指南 当我点击“新指南”链接时,Heroku的日志显示:Ruby on rails 本地创建工作,但不在Heroku上。ActiveRecord::UnknownAttributeError(未知属性:用户id),ruby-on-rails,ruby,heroku,devise,Ruby On Rails,Ruby,Heroku,Devise,用户只有在登录后才能创建指南 当我点击“新指南”链接时,Heroku的日志显示: 2013-12-30T20:28:37.826032+00:00 app[web.1]: ActiveRecord::UnknownAttributeError (unknown attribute: user_id): 导向控制器: class GuidesController < ApplicationController before_action :set_guide, only: [:show
2013-12-30T20:28:37.826032+00:00 app[web.1]: ActiveRecord::UnknownAttributeError (unknown attribute: user_id):
导向控制器:
class GuidesController < ApplicationController
before_action :set_guide, only: [:show, :edit, :update, :destroy]
before_action :authenticate_user!, except: [:index, :show]
# GET /guides
# GET /guides.json
def index
if params[:tag]
@guides = Guide.tagged_with(params[:tag])
else
@guides = Guide.all
end
end
# GET /guides/1
# GET /guides/1.json
def show
end
# GET /guides/new
def new
@guide = current_user.guides.build(guide_params)
end
# GET /guides/1/edit
def edit
end
# POST /guides
# POST /guides.json
def create
@guide = current_user.guides.build(guide_params)
respond_to do |format|
if @guide.save
format.html { redirect_to @guide, notice: 'Guide was successfully created.' }
format.json { render action: 'show', status: :created, location: @guide }
else
format.html { render action: 'new' }
format.json { render json: @guide.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /guides/1
# PATCH/PUT /guides/1.json
def update
respond_to do |format|
if @guide.update(guide_params)
format.html { redirect_to @guide, notice: 'Guide was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: 'edit' }
format.json { render json: @guide.errors, status: :unprocessable_entity }
end
end
end
# DELETE /guides/1
# DELETE /guides/1.json
def destroy
@guide.destroy
respond_to do |format|
format.html { redirect_to guides_url }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_guide
@guide = Guide.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def guide_params
params.require(:guide).permit(:title, :author, :description, :link, :tag_list) if params[:guide]
end
end
类指南控制器
您的新操作中有此功能
def new
@guide = current_user.guides.build(guide_params)
end
为什么??新操作应该只是将表单返回到浏览器以创建新的指南。您可以在create
操作中重复此操作,它应该在哪里
您的索引也有以下内容:
def index
if params[:tag]
@guides = Guide.tagged_with(params[:tag])
else
@guides = Guide.all
end
end
您可能应该使用guide\u params[:tag]
,因为浏览器正在返回:tag
编辑我看到您正在白名单中使用[:tag\u list]
。我想你是在别的地方交的吧?您是否测试了使用定义的标记执行索引
操作的能力?我想你唯一想使用bareparams[:xxxx]
的地方是在一个私有方法中。你有没有遇到任何错误?请提供详细信息以帮助您调试问题。哦,是的。我怎么能忘记。。。傻瓜,更新了@SimoneCarletti你做过这件事吗?heroku运行rake:db migrate
@bjaid-是的,我做过。