新しいレンダリングされない重複レコードのレール

私が望むのは、既存のレコードを複製することだけです。これは、データが移入された新しいフォームをレンダリングし、この新しいレコードを '作成'させます。

def clone
  @agreement = Agreement.find_by_slug!(params[:id])
  @agreement.clone

  respond_to do |format|
    format.html { render action: "new", notice: 'Agreement was successfully cloned.' }
  end
end

私のモデル

def clone
  self.dup()
  self.slug = nil
end

私はこのエラーが発生します:

No route matches {:action=>"show", :controller=>"agreements", :format=>nil, :id=>#

ルート

resources :agreements do
  member do
    post 'approve'
    get 'clone', :controller => 'agreements', :action => 'clone'
  end
end
0

1 答え

私はあなたのクローンメソッドがあるべきだと思う:

def clone
   clone = self.dup()
   clone.slug = nil
   clone
end

コントローラー:

agreement = Agreement.find_by_slug!(params[:id])
@agreement = agreement.clone

ps:あなたのルートでコントローラとアクションを指定するのはなぜですか?それはデフォルトがどういうものなのですか、何か不足していますか?

2
追加された
私はしばらくこの質問に良い答えを見出そうとしています。これは私が見つけた最高のものです。プラスそれは動作します!
追加された 著者 memoht,
ありがとう@ロビンエラーは消えました。今クローニングが機能します。どのようにhas_many関連付けを組み込むのか?私はまた、私のルート、以前の問題からの遺産の毛羽を削除しました
追加された 著者 Gaelle,