Я новичок в Rails и работаю над созданием приложения для родителей, которые дают задания (миссию) детям.
Но когда я пытаюсь обновить задачу, меняя статус, я получаю: параметр отсутствует или значение пусто: миссия
Миссия:
create_table "missions", force: :cascade do |t|
t.string "name"
t.integer "point"
t.date "start_at"
t.date "end_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.bigint "user_id"
t.integer "status", default: 0
t.index ["user_id"], name: "index_missions_on_user_id"
end
Модель:
class Mission < ApplicationRecord
belongs_to :user
enum status: [:to_do, :pending, :done]
end
Мой контроллер:
class MissionsController < ApplicationController
before_action :set_mission, only: [:show, :edit, :update, :destroy]
def show
end
def edit
end
def update
# @mission.update(params[:id])
@mission.update(mission_params)
end
private
def set_mission
@mission = Mission.find(params[:id])
authorize @mission
end
def mission_params
params.require(:mission).permit(:user_id, :start_at, :end_at, :point, :name, status: [:to_do, :pending, :done])
end
My mission_show
<%= simple_form_for @mission do |f| %>
<% f.input :status, value: 1 %>
<%= f.button :submit, class: 'btn btn-primary' %>
<% end %>
Вот мое сообщение об ошибке:
ActionController::ParameterMissing in MissionsController#update
param is missing or the value is empty: mission
@mission
=> <Mission id: 2, name: "guest room", point: 3, start_at: "2019-03-16", end_at: "2019-05-16", created_at: "2019-04-09 12:12:25", updated_at: "2019-04-09 12:12:25", user_id: 5, status: "to_do">
params
=> <ActionController::Parameters {"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"FYn7UAPJ7u+zQCcd+nNXUlEc2+NAWrdBWHhtfN2UPmex0kcG3VrgPUcIjDxdsmmA54DO/ee0Ks1XbGAtiR7tHw==", "commit"=>"Update Mission", "controller"=>"missions", "action"=>"update", "id"=>"2"} permitted: false>
Я уже попробовал каждое решение, которое смог найти, но ни одно из них не помогло мне.
Спасибо