关于ruby的lynda课程-rails 4不兼容

关于ruby的lynda课程-rails 4不兼容,ruby,parameters,strong-parameters,Ruby,Parameters,Strong Parameters,所以我在上lynda.com rails课程 因为课程是为rails 3.1录制的,我现在在rails 4上,他们现在强制执行强_参数。我添加了subject_params定义以符合这一点,但现在,当我尝试在先前声明的类show上获取参数[:id]时,我得到了ActiveRecord::RecordNotFound。下面是代码。方法显示以前工作得很好 class SubjectsController < ApplicationController def show @subject

所以我在上lynda.com rails课程

因为课程是为rails 3.1录制的,我现在在rails 4上,他们现在强制执行强_参数。我添加了subject_params定义以符合这一点,但现在,当我尝试在先前声明的类show上获取参数[:id]时,我得到了ActiveRecord::RecordNotFound。下面是代码。方法显示以前工作得很好

class SubjectsController < ApplicationController


 def show
@subject = Subject.find(params[:id])
  end

  def new
    @subject = Subject.new(:name => 'default')
  end

  def create
    # Instantiante a new object using form parameters
   @subject = Subject.new(subject_params)
   # Save the object
     if @subject.save
    # If save suceeds, redirect to the list action
  redirect_to(:action => 'list')
else
  # If save fails, redisplay the form so user can fix problems
  render('new')
  end
end

private
def subject_params
    params.require(:subject).permit(:id, :name, :position, :visible)
  end

end
class SubjectsControllerdefault)
结束
def创建
#使用形状参数实例化新对象
@主题=主题。新建(主题参数)
#保存对象
如果@subject.save
#如果保存成功,则重定向到列表操作
将_重定向到(:action=>'list')
其他的
#如果保存失败,请重新显示表单,以便用户可以修复问题
呈现('新')
结束
结束
私有的
定义主题参数
参数require(:subject).permit(:id,:name,:position,:visible)
结束
结束

尝试添加
:created\u at
:updated\u at
并删除
:id
像这样:


您是否检查了url,它传递了什么?在rails控制台中创建一个对象,并检查Subject.find(some_id)是否有效。。
(params.require(:subject).permit(:name, :position, :visible, :created_at, :updated_at)