Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails RubyonRails嵌套控制器:造成模型问题_Ruby On Rails_Ruby_Ruby On Rails 3_Ruby On Rails 3.1_Controller - Fatal编程技术网

Ruby on rails RubyonRails嵌套控制器:造成模型问题

Ruby on rails RubyonRails嵌套控制器:造成模型问题,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,controller,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Controller,我在用户下嵌套了控制器评论,两者都是由scaffoldGenerator生成的;视图/索引操作运行良好,但当我尝试创建模型(/users/1/reviews/new)时,出现了一个错误 No route matches {:controller=>"reviews", :user_id=>#<Review id: nil, user_id: nil, reviewer_id: nil, predisposition: nil, description: nil, created

我在用户下嵌套了控制器评论,两者都是由scaffoldGenerator生成的;视图/索引操作运行良好,但当我尝试创建模型(/users/1/reviews/new)时,出现了一个错误

No route matches {:controller=>"reviews", :user_id=>#<Review id: nil, user_id: nil, reviewer_id: nil, predisposition: nil, description: nil, created_at: nil, updated_at: nil>}
没有路由匹配{:controller=>“reviews”,:user_id=>#}
我尝试将@review的表单更改为user\u reviews的表单路径(@review),但在create操作上也有相同的错误

我怎样才能解决这个问题

另外,如果您向我推荐一本关于RubyonRails食谱的书,我将不胜感激(我从Practical网站上读过ROR食谱,但它太简单了)。

在您的控制器中:

@user = User.find params[:id]
@review = @user.reviews.build(<enter your initialization params here>)

我将从优秀的开始,当然还有一个问题,在索引操作中,当有任何记录是路由错误时,问题将从%td=link\u变成“Edit”,Edit\u user\u review\u path(review)。怎么了?路由看起来像资源:用户执行资源:评论结束谢谢。编辑现有嵌套资源时,您需要告诉路由器对象及其父对象的信息—在本例中是用户和评论。所以您需要:编辑用户查看路径(用户,查看)
=form_for [@user, @review] do |f|