Activerecord 不能';找不到<;对象>;没有ID rails 3.0.1
不幸的是,这是我这几天来的第二篇文章。因此,应用程序在mysql和rails 3.0.3上运行良好,但我发现我需要使用MSSQL,所以我不得不将rails降级到3.0.1 简而言之,我将show.html.erb复制为show2.html.erb,并创建了一个新方法,它是show方法的副本。然后我创建了一个路由匹配 我的控制器Activerecord 不能';找不到<;对象>;没有ID rails 3.0.1,activerecord,model,view,ruby-on-rails-3,Activerecord,Model,View,Ruby On Rails 3,不幸的是,这是我这几天来的第二篇文章。因此,应用程序在mysql和rails 3.0.3上运行良好,但我发现我需要使用MSSQL,所以我不得不将rails降级到3.0.1 简而言之,我将show.html.erb复制为show2.html.erb,并创建了一个新方法,它是show方法的副本。然后我创建了一个路由匹配 我的控制器 class fathersController < ApplicationController def show @father= Father.fin
class fathersController < ApplicationController
def show
@father= Father.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @father}
end
end
def show2
@father= Father.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @father}
end
end
end
当我打电话时
http://127.0.0.1:3000/father/1
http://127.0.0.1:3000/father/1/show2
我可以观看演出,但当我打电话时
http://127.0.0.1:3000/father/1
http://127.0.0.1:3000/father/1/show2
我得到以下错误
Couldn't find father without an ID
请求参数返回为
{"father_id"=>"1"}
所以我知道问题是应用程序将id作为父辈id传递,但我如何修复它?任何帮助都将不胜感激。有两个问题
/show2
发送到名为hospitals
的控制器,而您的操作实际上是在控制器上指定的
resources :fathers do
get :show2, :on => :member
resources :kids
end
您也可以将上述内容写成:
resources :fathers do
member do
get :show2
end
resources :kids
end
谢谢,我试过了,但是现在它传递了正确的变量,但是现在我得到了错误,我昨天得到了nil:NilClass的未定义方法'name',所以现在它不认为父类是合法的,这对我来说是一个不同的问题,比如,不是路由问题。请您就相关控制器、模型和视图提出一个新问题,谢谢您的帮助。我忘记了,把这个方法从我的控制器里拿了出来。