Powielanie rekordu w Rails 3

Mam model recepty w mojej aplikacji Rails 3. Próbuję wypracować najlepszą metodę pozwalającą na duplikowanie rekordów, ale pozwalającą użytkownikowi „przejrzeć” duplikat przed jego zapisaniem.

Przeczytałem kilka pytań / odpowiedzi na temat SO (takich jakto jeden), który wyjaśnia, jak powielić / sklonować rekord, a następnie zapisać go - ale żaden z nich nie wyjaśnia, jak wyświetlić formularz przed zapisaniem.

Czytanie interfejsu API Rails pojawia sięklon metoda jest dostępna.

Czytanieinne pytania i odpowiedzi pokazują, że można to zrobić, ale nie ma przykładowego kodu poza:

new_record = old_record.dup

Kod kontrolera, z którym obecnie pracuję, jest następujący (model nie ma żadnych relacji):

  # POST /prescriptions
  # POST /prescriptions.json
  def create
    @prescription = Prescription.new(params[:prescription])
    @prescription.localip = request.env['REMOTE_ADDR']
    @prescription.employee = @prescription.employee.upcase

    respond_to do |format|
      if @prescription.save
        format.html { redirect_to @prescription, notice: 'Prescription was successfully created.' }
        format.json { render json: @prescription, status: :created, location: @prescription }
      else
        format.html { render action: "new" }
        format.json { render json: @prescription.errors, status: :unprocessable_entity }
      end
    end
  end

Będę linkował do tej akcji klonowania z widoku za pomocą:

<%= link_to "Create another like this?", clone_prescription_url(@prescription), :method => :put %>

Czy to tak proste, jak dodanie akcji do mojego kontrolera w ten sposób?

def clone
 @prescription = Prescription.find(params[:id])
 @prescription.dup
 @prescription.save
end

Przepraszam, jeśli powyższy kod jest całkowicie błędny, staram się go obejść! widziałemktoś Zrób dokładnie to, co próbuję osiągnąć dzięki klonowaniu - ale nie przed edycją przed zapisaniem.

Duplikujący użytkownik nie będzie miał uprawnień do edycji rekordu po zapisaniu. Jest to wyłącznie do wstępnego wprowadzania danych.

questionAnswers(3)

yourAnswerToTheQuestion