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にあるワーカー ビューの 1 つからパーシャルをレンダリングしようとしているようですapp/views/workerが、明らかにそのようなパーシャルはありません。関連するビューとコントローラーのコードを見せていただければ、正確な問題を特定するのがより簡単になります。

補足としてvalidates_presence_of :name、カスタム検証メソッドを定義する代わりに、モデルを単純化することもできます。ただし、これは説明しているエラーとは無関係である可能性が高く、一般的な改善の提案にすぎません。

于 2010-08-17T14:05:26.703 に答える
0

とった。コントローラーが2つありました。

quick_facts_controller.rb、organizations_controller.rb

quick_facts_controller の update 関数を削除したら、正常に動作しました。

于 2010-08-17T15:00:57.983 に答える