为什么Rails在指定格式时显示ActionController :: UnknownFormat?

时间:2015-09-04 15:51:46

标签: ruby-on-rails ruby

我的代码类似于以下代码,与Rails控制器的脚手架控制器操作没有太大区别:

应用程序/模型/ user.rb

class User < ActiveRecord::Base
  validates :first_name, :last_name, presence: true
end

应用程序/控制器/ users_controller.rb

def create
  @user = User.new(first_name: params[:first_name]) # oops, I forgot the last_name!

  respond_to do |format|
    if @user.save
      format.html { redirect_to user_path(@user) }
    end
    # do nothing if !@user.save
  end
end

1 个答案:

答案 0 :(得分:0)

对于Rails的新手,这可能是一个难以解决的问题。如果respond_to块中有多个条件路径,则应确保已考虑所有结果。如果您没有提供else分支作为回退,则可以在不遇到respond_to块的情况下评估format.*块,Rails将其解释为“未指定格式。”

示例代码是我遇到的实际代码的简化版本,并且很难确定错误消息的原因。据我所知,我提供了格式html,但当我认为我的format.html块已在条件内到达时,我错了。

我尝试使用Pry调试此代码,但却发现自己导航Rails源代码,无法确定我看到错误的原因。