1
중첩 된 특성을 관리하는 데 방해가되었습니다. 나는 레일에 새로운 사람이고 조언이나 실수를 지적 해 주셔서 대단히 감사하게 생각합니다. 그래서 나는이 같은 모델 티켓을중첩 된 특성을 관리하지 못했습니다.
class Ticket < ActiveRecord::Base
include Generator
has_paper_trail only:[:stuff_id, :status], on:[:update]
has_many :replies
accepts_nested_attributes_for :replies
end
은 또한 내가 내 목표는 기회를 제공하는 것입니다 답글 모델
class Reply < ActiveRecord::Base
belongs_to :ticket
validates :ticket_id, :body, presence: true
end
이 (그것도 등등 열거 정수 필드 상태, 참조 stuff_id 몸을 가지고) 티켓에 대한 답장을 만들고 선택적으로 티켓의 상태를 변경할 수 있습니다. 현재 나는 이런 식으로 관리하려고 : routes.rb를
resources :tickets do
patch 'stuff_update', on: :member
resources :replies
end
dashboards_controller.rb
class DashboardsController < ApplicationController
#before_action :authorize
before_action :method
def opened
end
protected
def method
@tickets = Ticket.send(action_name.to_sym).includes(:replies)
end
def ticket_params
params.require(:ticket).permit(:status, replies_attributes: [:body])
end
end
tickets_controller.rb
class TicketsController < ApplicationController
#before_action :authorize, only:[:stuff_update]
before_action :load_ticket, only:[:show, :update, :stuff_update]
respond_to :js
def stuff_update
@ticket.update(ticket_params)
end
protected
def ticket_params
params.require(:ticket).permit(:name, :subject, :email, :status, :body, :department, :stuff_id, replies_attributes: [:id, :body])
end
def load_ticket
@ticket = Ticket.find(params[:id])
end
end
그리고 마지막으로 볼
[email protected] do |t|
.panel.panel-default
p=t.subject
=form_for t,{ url: "/tickets/#{t.id}/stuff_update"}, {method: :patch} do |f|
= f.label :status, class: 'label_hidden'
= f.select :status, Ticket.statuses.keys, {}, {class:'form-control'}
= f.fields_for t.replies.build do |ff|
= ff.label :body
= ff.text_field :body
= f.submit "Submit"
허용되지 않은 매개 변수 응답에 대해 오류가 발생했습니다. 또한 그것은 내 실수 로이 오류 외에도 내 코드에 보인다. 필사적으로 도움이 필요합니다. 이 일을 처리하도록 도와주세요.