0

更新:用更详尽的描述解决了整个问题

好的,不同名称的相同问题。

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

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

更新:我的控制器代码

组织控制器.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
4

2 回答 2

2

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

附带说明一下,您可以简单地做validates_presence_of :name而不是定义自定义验证方法来简化您的模型。但是,这可能与您描述的错误无关,只是一般的改进建议。

于 2010-08-17T14:05:26.703 回答
0

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

quick_facts_controller.rb 和 organizations_controller.rb

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

于 2010-08-17T15:00:57.983 回答