写出正确的验证错误?

时间:2010-08-17 13:55:24

标签: ruby-on-rails validation forms polymorphic-associations

更新:通过更全面的描述扼杀整个问题

同样的问题有不同的名字。

在我的模型中,我确实验证了。

的存在
class QuickFact < ActiveRecord::Base
 belongs_to :organization

 validates_presence_of :quick_fact, :content

但如果其中任何一个为空白,则会出错:

Missing template organizations/_quick_fact_fields.erb

这是一个问题。我有一个嵌套的表单模型,其中包含动态可添加的部分。如下所示:

http://railscasts.com/episodes/197-nested-model-form-part-2

这就是生成并调用_quick_fact_fields.erb的内容。但这完美无缺,位于quick_facts/_quick_fact_fields.html.haml

之内

更新:我的控制器代码

organizations_controller.rb

def update
  if @organization.update_attributes(params[:organization])
    ..
    elsif params[:organization][:quick_facts_attributes]
      flash[:notice] = 'QuickFacts successfully updated.'
      redirect_to organization_quick_facts_url(@organization)
    else
      flash[:notice] = 'Organization was successfully updated.'
      redirect_to :action => 'edit'
    end
  else
    # re-render last form
    ..
    elsif params[:organization][:quick_facts_attributes]
      render :template => "quick_facts/index"
    else
      render :action => 'edit'
    end
  end
end

2 个答案:

答案 0 :(得分:2)

您似乎正在尝试从my_custom_field中的某个工作人员视图中呈现app/views/worker部分,但显然那里没有这样的部分。如果您向我们展示相关视图和控制器的代码,则更容易确定确切的问题。

另外,您只需执行validates_presence_of :name而不是定义自定义验证方法来简化模型。但是,这可能与您所描述的错误无关,只是一个普遍的改进建议。

答案 1 :(得分:0)

知道了。我有两个控制器。

quick_facts_controller.rb和organizations_controller.rb

一旦我删除了quick_facts_controller中的更新功能,它就能正常工作。