Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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 如何在rails中显示嵌套表单中的数据?_Ruby On Rails_Ruby_Nested Forms - Fatal编程技术网

Ruby on rails 如何在rails中显示嵌套表单中的数据?

Ruby on rails 如何在rails中显示嵌套表单中的数据?,ruby-on-rails,ruby,nested-forms,Ruby On Rails,Ruby,Nested Forms,我有一个嵌套的模型表单,它提供两个表。我已将我的位置字段嵌套在我的Posts表单中。如何在show.html.erb文件中显示嵌套数据 <h1>My Update</h1><br> <p>my status: <%= @post.status %></p> <p>this is the upload: <%= link_to @post.upload, @post.upload %></p>

我有一个嵌套的模型表单,它提供两个表。我已将我的位置字段嵌套在我的Posts表单中。如何在show.html.erb文件中显示嵌套数据

<h1>My Update</h1><br>
<p>my status: <%= @post.status %></p>
<p>this is the upload: <%= link_to @post.upload, @post.upload %></p>
 <p><%= @place.address %></p>
我的更新
我的身份:

这是上传:

我在最后一行得到一个“帖子中的NoMethodError#show”错误

它说“nil:NilClass的未定义方法'address'”


如果你想看到所有的代码,我只是推到github

您不需要将@place实例变量加载到数据库中。一旦你在show方法中加载了它,但是你需要根据你的应用程序的数据、模型等来执行,你将不再收到错误

更新

 <p><%= @place.address %></p>

 <p><%= @post.place.address %></p>

由于您没有设置
@place
实例变量,因此会出现错误。 查看您的代码,我发现您在
Place
Post
模型之间存在
1-M
关系。
因此,为了显示某个特定的
帖子所属的
位置的
地址
,您可以如上所述进行操作。

错误是
@place
为零。您是否仔细检查了呈现此视图的控制器操作?我在show方法中添加了
code@place=place.find params[:id]
。看起来我的表单没有填充数据库中的Places表…您的routes.rb也无效,对于嵌套资源,您应该在place资源块中创建posts资源,将do end放在post资源周围这是否意味着我需要在place视图下的表单中嵌套post参数?那将与我现在拥有的正好相反。谢谢!这是有道理的。我添加了它。@siriusparis如果它解决了您的问题,请接受答案。好的-我添加了
code@place=place.pulk参数[:address]
看起来我的表单没有将地址保存到Places表中。。。因此,我还在PostsController的create方法中添加了
code@post.place=place.new参数[:address]