我遇到错误Couldn't find Course with 'id'=
。
这是manage_users
的课程控制器功能:
def manage_users
@course_users = (@course.users + (User.where(admin: true))) - [current_user]
@other_users = @users.where(admin: false) - (@course_users + [current_user])
end
private
# Use callbacks to share common setup or constraints between actions.
def set_course
@course = Course.find(params[:id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def course_params
params.require(:course).permit(:name, :start_date, :end_date, :branch_id)
end
的routes.rb
resources :courses do
get 'manage_users'
put 'add_user'
end
答案 0 :(得分:2)
尝试更改set_course
方法:
def set_course
@course = Course.find(params[:course_id])
end
您正在course_id
传递参数,因此您应该像params[:course_id]
一样获取它。
目前您正在params[:id]
进行此操作,因此无法使用此ID找到课程
答案 1 :(得分:0)
before_filter
Course
找不到id=1
{/ 1}}。
def set_course
@course = Course.find(params[:id])
end
课程ID正在course_id
参数中传递。
def set_course
@course = Course.find(params[:course_id])
end
答案 2 :(得分:0)
尝试更新您的routes.rb文件:
resources :courses do
member do
get 'manage_users'
end
end
答案 3 :(得分:-1)
它适用于所有行动
@course = Course.find_by(id: [params[:id], params[:course_id]])