Task_params가 인식되지 않으며 이유를 모르겠습니다. 나는 그것을 여러 번 검토했지만 여전히 그것을 해결할 수 없습니다. 오류를 발생시키는 코드의 일부는 create에서 task_params를 사용했지만 맨 아래에 있습니다. 나는 이것에 익숙하지 않기 때문에 너무 명백한 것을 놓치고 있지 않기를 바랍니다! Ruby on Rails를 사용하고 있습니다. 감사. 내가 정말 어리석은 실수를 저질렀다는 것을 깨달았습니다. 나는 모델 작업을 사용한 튜토리얼을 따르고있었습니다. 그래서 실제로 작업 매개 변수를 사용하는 것이 아니라 Im 사용하는 모델을 사용해야합니다!
class ModuleListsController < ApplicationController
before_action :set_module_list, only: [:show, :edit, :update, :destroy]
before_action :set_student, only: [:new, :create]
# GET /module_lists
# GET /module_lists.json
def index
@module_lists = ModuleList.all
end
# GET /module_lists/1
# GET /module_lists/1.json
def show
end
# GET /module_lists/new
def new
@module_list = @student.module_lists.new
end
# GET /module_lists/1/edit
def edit
end
# POST /module_lists
# POST /module_lists.json
def create
@module_list = @student.module_lists.new(task_params)
respond_to do |format|
if @module_list.save
format.html { redirect_to @module_list, notice: 'Module successfully created.' }
format.json { render :show, status: :created, location: @module_list }
else
format.html { render :new }
format.json { render json: @module_list.errors, status: :unprocessable_entity }
end
end
end
# PATCH/PUT /module_lists/1
# PATCH/PUT /module_lists/1.json
def update
respond_to do |format|
if @module_list.update(module_list_params)
format.html { redirect_to @module_list, notice: 'Module list was successfully updated.' }
format.json { render :show, status: :ok, location: @module_list }
else
format.html { render :edit }
format.json { render json: @module_list.errors, status: :unprocessable_entity }
end
end
end
# DELETE /module_lists/1
# DELETE /module_lists/1.json
def destroy
@module_list.destroy
respond_to do |format|
format.html { redirect_to module_lists_url, notice: 'Module list was successfully destroyed.' }
format.json { head :no_content }
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_module_list
@module_list = ModuleList.find(params[:id])
end
def module_list_params
params.require(:module_list).permit(:student_id, :title, :description, :credit_value)
end
def set_student
@student = Student.find_by(id: params[:student_id]) ||
Student.find(task_params[:student_id])
end
end
그것은 당신이 task_params
애초에 정의하지 않기 때문 입니다. 다음과 같이 추가하면 작동합니다.
def task_params
params.require(:module_list).permit(:content, :user_id)
end
private
파일 끝에있는 섹션 으로 이동해야합니다 . 그리고 둥근 괄호 사이에 넣는 permit
것은 사용자에게 양식을 통해 제출하도록 요청하는 요소에 따라 다릅니다. 모든 요소는 허용되어야합니다. 그렇지 않으면 데이터베이스에 저장되지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다