如何将循环变量从循环传递到控制器?

干燥

好吧,可能有简单的方法可以做到这一点,但我真的想不通。鉴于我有每个不应该存在的循环和逻辑。问题是我不知道如何在方法内部传递循环变量。

 - @groups.in_groups_of(2, false).each do |groups|
  .row
   -groups.each do |group|
    .box.col-md-5{id: "group_#{group.id}"}
      %h3= group.group_name          
      - if UserGroup.where("group_id = ? AND user_id = ?", group.id, current_user.id).exists?
        %p= link_to 'Show', group
        - if current_user[:id] != group.created_by

最后我想问一下是否有必要将其移动到方法或助手中?

- if current_user[:id] != group.created_by
khaled_gomaa

首先,确保您的用户模型中有这些行

class User
  has_many :user_groups
end

现在在控制器中,你写:

@user_group_ids = current_user.user_groups.pluck(:group_id)

这将避免有N+1 个查询

现在在你看来

 - @groups.in_groups_of(2, false).each do |groups|
  .row
   -groups.each do |group|
    .box.col-md-5{id: "group_#{group.id}"}
      %h3= group.group_name          
      - if @user_group_ids.include?(group.id)
        %p= link_to 'Show', group
        - if current_user[:id] != group.created_by

现在对于 current_user[:id] != group.created_by 不需要移动任何地方,除非它是你经常使用的东西。这是一般规则,如果您在 2 个以上的地方使用它,请将其放在可以重复使用的地方。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将变量从控制器传递到块

如何将变量从控制器传递到视图

如何将输入请求传递给控制器中的 foreach 循环以存储数据

RoR - 如何使视图上的 .each 循环将变量传递给控制器

如何将路径变量从控制器传递到 JPA 存储库

如何将变量数据从控制器传递到视图(MVC)

如何将JSON编码结果从控制器传递到JavaScript变量

如何将变量从Angular控制器传递到html <script> </ script>?

如何将函数中的变量传递到控制器中?

如何将变量从控制器代码传递到fxml视图?

Laravel - 如何将变量从控制器传递到作业

如何将变量从树枝路径传递到同一控制器?

函数执行后如何将变量从控制器传递到模型

如何将JavaScript变量传递到Rails控制器中?

Laravel 5.2-如何将变量(数组和整数)从视图传递到控制器?

如何将变量从路由传递到控制器Node.js JavaScript

如何将变量从控制器范围传递到工厂

如何将变量从控制器传递到路由文件?

Rails:如何将全局变量从路由传递到控制器和助手?

如何将变量$ data传递给控制器?

如何将数据从服务传递到控制器?

如何将多值从控制器传递到 HTML

如何将值从视图传递到控制器

如何将数据从组件传递到控制器?

如何将列表从控制器传递到jsp?

如何将列表从视图传递到控制器?

如何将列表从Ajax传递到控制器

如何将数据从指令传递到控制器?

如何将JS循环变量传递到FireStore中