рельсы дублируют записи, не отображая новые - PullRequest
0 голосов
/ 19 декабря 2011

все, что я хочу, это дублировать существующую запись.Он должен отобразить новую форму с заполненными данными и позволить мне «Создать» эту новую запись.

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=>#<Agreement id: 1, date: "2011-12-18",...`

Маршруты

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

1 Ответ

2 голосов
/ 19 декабря 2011

Я думаю, что ваш метод клонирования должен быть:

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

И контроллер:

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

ps: почему вы указываете контроллер и действие в ваших маршрутах. Это то, что будет по умолчанию, или я что-то упустил?

...