我的代码类似于以下代码,与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
答案 0 :(得分:0)
对于Rails的新手,这可能是一个难以解决的问题。如果respond_to
块中有多个条件路径,则应确保已考虑所有结果。如果您没有提供else
分支作为回退,则可以在不遇到respond_to
块的情况下评估format.*
块,Rails将其解释为“未指定格式。”
示例代码是我遇到的实际代码的简化版本,并且很难确定错误消息的原因。据我所知,我提供了格式html
,但当我认为我的format.html
块已在条件内到达时,我错了。
我尝试使用Pry调试此代码,但却发现自己导航Rails源代码,无法确定我看到错误的原因。