更新:通过更全面的描述扼杀整个问题
同样的问题有不同的名字。
在我的模型中,我确实验证了。
的存在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
答案 0 :(得分:2)
您似乎正在尝试从my_custom_field
中的某个工作人员视图中呈现app/views/worker
部分,但显然那里没有这样的部分。如果您向我们展示相关视图和控制器的代码,则更容易确定确切的问题。
另外,您只需执行validates_presence_of :name
而不是定义自定义验证方法来简化模型。但是,这可能与您所描述的错误无关,只是一个普遍的改进建议。
答案 1 :(得分:0)
知道了。我有两个控制器。
quick_facts_controller.rb和organizations_controller.rb
一旦我删除了quick_facts_controller中的更新功能,它就能正常工作。