TLDR:테이블 상태 속성 업데이트 버튼

1393 단어 railspolymorphismruby

작업:버튼 추가로 작업 상태 변경



방법:


마이그레이션 - status 열을 tasks에 추가
add_column :tasks, :status, :string, null: false, default: "planned"

임무.rb- 사용 가능한 상태 나열
  validates :status, presence: true
  STATUSES = [:planned, :progress, :done]

작업 및 컨트롤러rb- 상태 변경 작업 추가
  def change_status
    @task = Task.find(params[:id])
    if params[:status].present? && Task::STATUSES.include?(params[:status].to_sym)
      @task.update(status: params[:status])
    end
    redirect_to @task, notice: "Status updated to #{@task.status}"
  end

노선rb- 상태를 변경하기 위해 조작 가능한 링크를 추가합니다.
  resources :tasks do
    member do
      patch :change_status
    end
  end

임무.html.직원 재교육국
  <% Task::STATUSES.each do |status| %>
    <%= link_to change_status_task_path(@task, status: status), method: :patch do %>
      <%= status %>
    <% end %>
  <% end %>

봐라, 바로 이렇다!

좋은 웹페이지 즐겨찾기