Ruby on rails 从视图到控制器的逻辑

Ruby on rails 从视图到控制器的逻辑,ruby-on-rails,Ruby On Rails,如何将此视图移动到控制器 模型 class Reserve < ApplicationRecord belongs_to :user, optional: true end 在您看来,您可以替换查询,访问user.reserves并对其进行迭代: <% @user_list.each do |user| %> <td><%= user.name %>:</td> <% user.reserves.each do |res

如何将此视图移动到控制器

模型

class Reserve < ApplicationRecord
   belongs_to :user, optional: true
end

在您看来,您可以替换查询,访问user.reserves并对其进行迭代:

<% @user_list.each do |user| %>
  <td><%= user.name %>:</td>
  <% user.reserves.each do |reserve| %>
    - <td><%= reserve.date %></td><br>
    - <td><%= reserve.time %></td><br>
  <% end %>
<% end %>
我不知道您的情况,但要处理
保留
我必须在拐点配置文件中创建一个条目:

# config/initializers/inflections.rb

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'reserve', 'reserves'
end

问题是reserves=Reserve.where(:user_id=>user.id)我说的对吗?
user.includes:reserves
做你想做的事,而不是用where子句为每个用户再次点击数据库,试试看。是的,这是@Johnlast问题,如果我想在控制器中迭代并创建一个对象reserve='reserve.where(:user_id=>user.id)'并放置reserve?谢谢。这取决于您为什么要这样做,您可以使用includes从每个用户处获得储备金。另一方面,如果要这样做,则需要从视图向控制器发送
user.id
,这可以通过定义新路由或使用AJAX来完成。
<% @user_list.each do |user| %>
  <td><%= user.name %>:</td>
  <% user.reserves.each do |reserve| %>
    - <td><%= reserve.date %></td><br>
    - <td><%= reserve.time %></td><br>
  <% end %>
<% end %>
class SomeController < ApplicationController
  def index
    @user_list = User.includes :reserves
  end
end
# config/initializers/inflections.rb

ActiveSupport::Inflector.inflections do |inflect|
  inflect.irregular 'reserve', 'reserves'
end