gpt4 book ai didi

ruby-on-rails - ruby rails : Displaying Database Data from id?

转载 作者:数据小太阳 更新时间:2023-10-29 08:39:00 24 4
gpt4 key购买 nike

我有一个关系数据库,其中有一些东西属于这个,而这个有很多......我有一个给定 URL 参数的工作示例,但想知道如何将相同的概念应用于页面它遍历 ALL 数据库。

Controller

  def index
@lists = List.all

respond_to do |format|
format.html # index.html.erb
format.json { render json: @lists }
end
end

@lists = List.all 是获取我的数据库中的所有值,以便我可以在我的 View 页面中使用它并迭代它以显示值。

但是,我想遍历它然后也获取id,并根据id遍历我数据库中的另一个表。我在同一个 Controller 中有另一种方法可以工作(不知何故,我不知道)

  def show
@list = List.find(params[:id])
@idea = @list.ideas.build
respond_to do |format|
format.html # show.html.erb
format.json { render json: @list }
end
end

@list = List.find(params[:id]) 获取 url 中的参数,然后 @idea = @list.ideas.build 以某种方式生成它与 @list 有关,我可以在其中使用此循环

<% @list.ideas.each do |idea| %>
<div>
<div class="list_idea_desc"><%= idea.description %></div>
</div>
<% end %>

ideas 表中获取值并在 list 的页面内输出。但是我无法在索引页面(没有url参数)中输出all listsall ideas 如果我'通过这种方式迭代:

<% @lists.each do |list| %>

<% @list.ideas.each do |idea| %>
<div>
<div class="list_idea_desc"><%= idea.description %></div>
</div>
<% end %>

<% end %>

这有意义吗?我想我只是想弄清楚如何从 @lists 的迭代中获取 id,然后以某种方式将 id 与我数据库中的另一个表连接起来?

谢谢!

最佳答案

实际上,您完全可以做到这一点。我相信如果你改变<% @list.ideas.each do |idea| %><% list.ideas.each do |idea| %> , 它会起作用。

问题是 @list是一个实例变量(可能是一个未设置的 - 我没有看到它在任何地方设置),而 list是由您的迭代器 ( .each ) 设置的局部变量。

请注意,顺便说一下,随着数据库中列表数量的增加,这可能会开始运行得非常慢,因为服务器将进行一次调用以获取与每个列表关联的创意。您可以使用 eager loading 解决此问题.

关于ruby-on-rails - ruby rails : Displaying Database Data from id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16271925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com