gpt4 book ai didi

ruby-on-rails-3 - 在Rails 3中复制记录

转载 作者:行者123 更新时间:2023-12-04 03:33:13 25 4
gpt4 key购买 nike

我的Rails 3应用程序中有一个处方模型。我正在尝试找出允许重复记录的最佳方法,但是允许用户在保存副本之前对其进行“审阅”。

我已经阅读了很多关于SO的问题/答案(例如this一个),这些问题/答案解释了如何复制/克隆记录然后保存它-但是没有一个问题/答案解释了如何在保存之前显示表单。

读取Rails API时,出现clone方法可用。

阅读other questions和答案表明可以做到,但是除了以下示例代码之外:

new_record = old_record.dup

我当前正在使用的 Controller 代码如下(该模型没有任何关系):
  # 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

我将从以下角度链接到此克隆操作:
<%= link_to "Create another like this?", clone_prescription_url(@prescription), :method => :put %>

像这样向我的 Controller 添加 Action 一样简单吗?
def clone
@prescription = Prescription.find(params[:id])
@prescription.dup
@prescription.save
end

抱歉,如果上面的代码是完全错误的,我正在努力解决它!我已经看到 someone确实完成了我要通过克隆实现的目标-但在保存之前没有进行编辑。

保存后,正在复制的用户将无权编辑记录。它仅用于初始数据输入。

最佳答案

如果您希望克隆操作允许用户在保存副本(创建AKA)之前查看其副本,则该副本操作几乎类似于"new"操作,但已填写的字段除外。

因此,您的克隆方法可能是对新方法的修改:

def new
@prescription = Prescription.new()
end
def clone
@prescription = Prescription.find(params[:id]) # find original object
@prescription = Prescription.new(@prescription.attributes) # initialize duplicate (not saved)
render :new # render same view as "new", but with @prescription attributes already filled in
end

然后,他们可以在 View 中创建对象。

关于ruby-on-rails-3 - 在Rails 3中复制记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11993012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com