【发布时间】:2019-02-25 02:23:26
【问题描述】:
我会澄清我正在做的事情
class DuplicatesController < ApplicationController
before_action :set_venue, only: [:new]
def new
end
def create
if @venue.duplicate(venue_params)
flash[:success] = t('controller.create.success',
resource: Venue.model_name.human)
redirect_to admin_venue_url @venue
else
flash[:warning] = @venue.errors.full_messages.to_sentence
render :new
end
end
private
def set_venue
@venue = Venue.friendly.find params[:venue_id]
end
end
def venue_params
params.require(:venue).permit(:name,
:address,
:address_complement,
:city,
:phone)
end
结束
定义重复
(名称, 地址, 地址补全, 城市, 电话)
new_venue = self.dup
new_venue.update_attributes(description: self.description,
logo: self.logo,
opening_time: self.opening_time,
closing_time: self.closing_time,
ally_id: self.ally_id)
new_venue.save
结束
如何在我的副本控制器中调用这些参数,谢谢 我需要在创建 dup 后设置属性,因为我想用新信息保存一条新记录,但我不知道用我的方法来做,有人可以解释一下 谢谢。
【问题讨论】:
-
能否请您澄清您的问题或添加更多详细信息?您是否正在尝试创建一个与 VenueController 具有完全相同操作的单独控制器?您不能将参数从一个控制器传递到另一个控制器,参数是从 HTTP 请求中提取的。
-
谢谢,是的,现在我在模型场地 def duplicate(params) new_venue = self.dup new_venue.attribute = params new_venue.save end 但在控制器中我从一个变量调用 method.duplicate
标签: ruby-on-rails controller clone dup