많은 양의 속성이 포함 된 "장치"개체가 있습니다. 장치 중 하나를 편집 할 때 복사 버튼을 눌러 새 장치를 만들고 text_field에 채워진 이전 장치 매개 변수로 "편집 페이지"를로드 할 수 있습니다. 하지만 버튼을 사용하여 동작 제어 방법을 호출하는 방법에 대해 매우 혼란 스럽습니다. 현재 오류가 발생하고 있습니다.레일 복사 버튼 오류
"경로가 일치하지 않습니다. {: action =>"clone ", : controller =>"device " > "1"} "
"clone "메소드를 호출 할 수 있다면 제대로 작동 할 것입니다. 어떤 도움이라도 대단히 감사하겠습니다! 내 현재 코드는 다음과 같습니다
edit.html.erb
<div class="row">
<%= form_for(@device) do |f| %>
<div class="span3 offset0">
<%= f.label "Unit Name" %>
<%= f.text_field :unitName %>
.
.
.
<%= f.label "Router Terminal Server IP" %>
<%= f.text_field :routerTerminalServerIp %>
</div>
<div class="span3 offset0">
<%= f.label "N2x Server" %>
<%= f.text_field :n2xServer %>
.
.
.
<%= f.label "Last Changed On" %>
<%= f.text_field :updated_at %>
<%= f.label "Update, Copy, or Delete Device" %>
<%= f.submit "Update", class: "btn btn-medium btn-info" %>
<%= link_to "Clone", :controller => "device", :action => "clone" %>
<%= link_to "Delete", device_path, class: "btn btn-medium btn-danger" %>
</div>
<% end %>
</div>
routes.rb
App::Application.routes.draw do
resources :devices
root 'static_pages#home'
match 'devices/clone', to: 'devices#clone', via: 'get'
end
당신은이 같은 경로를 지정해야합니다
class DevicesController < ApplicationController
def new
@device = Device.new
end
def clone
oldDevice = Device.find(params[:id])
@device = Device.new
@device = @oldDevice.dup
@device.save
redirect_to edit_device_path(@device.id)
end
def create
@device = Device.new(device_params)
@device.lastChangedBy = request.remote_ip
if @device.save
redirect_to edit_device_path(@device.id)
else
render 'new'
end
end
def show
@device = Device.find(params[:id])
end
def edit
@device = Device.find(params[:id])
end
def update
@device = Device.find(params[:id])
@device.lastChangedBy = request.remote_ip
if @device.update_attributes(device_params)
redirect_to edit_device_path(@device)
else
render "edit"
end
def destroy
Device.find(params[:id]).destroy
redirect_to root_url
end
end
private
def device_params
params.require(:device).permit(:unitName, ...., :owner)
end
end
clone_devise_path (id) 도우미를 사용하려면 button_to를 어떻게 설정해야합니까? –
Sth님께 서 '%% button_to'Clone ', clone_devise_path (@ devise.id) %>'. – BroiSatse
아,'@ device.id' : – BroiSatse