Ruby on rails 4 hartl教程参数在指南控制器#编辑中丢失

Ruby on rails 4 hartl教程参数在指南控制器#编辑中丢失,ruby-on-rails-4,railstutorial.org,Ruby On Rails 4,Railstutorial.org,我正在按照hartl教程构建我的应用程序, 但我并没有使用用户作为我的模型,而是指导 现在我在第9.2.1章 当我链接到编辑路径时,结果是错误的: ActionController::指南中缺少参数控制器#编辑 应用痕迹是 app/controllers/guides_controller.rb:42:inguides_params' app/controllers/guides\u controller.rb:29:inedit' 我的控制器.rb是 class GuidesControlle

我正在按照hartl教程构建我的应用程序, 但我并没有使用用户作为我的模型,而是指导

现在我在第9.2.1章 当我链接到编辑路径时,结果是错误的:

ActionController::指南中缺少参数控制器#编辑

应用痕迹是

app/controllers/guides_controller.rb:42:in
guides_params'
app/controllers/guides\u controller.rb:29:in
edit'

我的控制器.rb是

class GuidesController < ApplicationController
  before_action :signed_in_guide, only: [:edit, :update, :index]
  before_action :correct_guide,   only: [:edit, :update]

  def index
    @guides = Guide.all
  end

  def new
    @guide = Guide.new
  end
  def show
    @guide = Guide.find(params[:id])
  end
  def create
    @guide = Guide.new(guide_params)
    if @guide.save
        # successful
      guide_sign_in @guide
        flash[:success] = "guide signup success!"
        redirect_to @guide
    else
        flash[:success] = "guide signup failed!"
        render 'new'
    end
  end
  def edit
    @guide = Guide.find(params[:id])
    if @guide.update_attributes(guide_params)
      flash[:success] = "Profile updated"
      redirect_to @guide
    else
      render 'edit'
    end
  end




  private
      def guide_params
        params.require(:guide).permit(:name, :email,
        :password, :password_confirmation)
      end

    def signed_in_guide
      unless guide_signed_in?
        store_location
        redirect_to guidesignin_url, notice: "Please sign in."
      end
    end

    def correct_guide
      @guide = Guide.find(params[:id])
      redirect_to(root_url) unless current_guide?(@guide)
    end


end
类指南控制器
我不明白为什么params会失踪。。。
有人能帮我吗?非常感谢

我认为您的代码应该如下所示:

def edit
  @guide = Guide.find(params[:id])
end

def update
  @guide = Guide.find(params[:id])
  if @guide.update_attributes(guide_params)
    flash[:success] = "Profile updated"
    redirect_to @guide
  else
    render 'edit'
  end
end
如果您想在执行以下操作之前使用
:correct\u guide,则可以从此方法中删除
@guide=guide.find(params[:id])