내가 URL http://localhost:3000/operations/OPERATION_ID/agents/AGENT_ID/jobs/meterpreter/new잘못된 경로
undefined method `operation_agent_meterpreters_path' for #<#<Class:0x007ff2f7822638>:0x007ff2f9a7e0d8>
Did you mean? operation_agent_jobs_meterpreter_path
에서 새 작업을 만들려고 나는이 작업/
class Jobs::MeterpreterController < ApplicationController
def new
@operation = Operation.find params[:operation_id]
@agent = Agent.find params[:agent_id]
@job = MeterpreterJob.new agent: @agent
end
private
def jobs_params
params.require(:job).permit(:ip, :port)
end
end
에서 다음과 같은 노선
Rails.application.routes.draw do
get 'agents/index'
get 'agents/show'
devise_for :users
resources :operations do
resources :agents do
namespace :jobs do
resources :meterpreter
end
end
end
root 'operations#index'
end
감사관
모델
class Jobs::Meterpreter < Job
jsonb_accessor :options,
ip: :string,
port: :integer
#== VALIDATIONS
validates :ip, :port, presence: true
end
그리고 작업/meterpreter/new.html.erb
<div class="card">
<h4 class="card-header">New Meterpreter Job</h4>
<div class="card-body">
<%= form_with model: [@operation, @agent, @job] do |form| %>
<div class="form-row">
<div class="col-8">
<label for="name" class="col-form-label">Name:</label>
<%= form.text_field :ip, class: "form-control", placeholder: "0.0.0.0", required: true %>
</div>
<div class="col-4">
<label for="name" class="col-form-label">Name:</label>
<%= form.text_field :port, class: "form-control", placeholder: "443", required: true %>
</div>
</div>
<%= form.submit "Create", class: "btn btn-primary mt-4" %>
<% end %>
</div>
</div>
모든 경로 https://gist.github.com/drale2k/a25c4cbffe8c5e6446df2141a393cd17
'rails routes'의 출력을 공유 하시겠습니까? – Aakanksha
어떤 이유로 엔트리를 편집 할 수 없습니다. rotes가 있습니다. https://gist.github.com/drale2k/a25c4cbffe8c5e6446df2141a393cd17 –
PR에서는 form_with (model : [@post, Comment.new])를 볼 수 있지만 저는 form_with에서 여러 모델을 사용하지 않았습니다. 같은. 또한, Petr은 답을 가지고 있습니다. 다른 문제가 있는지 알려면 알려주세요. 그 오류는 주로'form_with'에 의해 생성되고있는'operation_agent_meterpreter_jobs_path' 경로가 없기 때문에 발생합니다. – Aakanksha