【问题标题】:erb file syntaxerb 文件语法
【发布时间】:2015-08-06 23:14:09
【问题描述】:
a = Array.wrap(params[:a]).join(', ')
<% unless a.blank? %>
   <%= a%>,
   <% end %>
     b = Array.wrap(params[:where]).join(' AND ')
      <% unless params[:dedup] %>
     table_name
      WHERE <%= input_data_filter %>
       <% unless b.blank? %>
            AND <%= b %>
       <% end %>
       AND c - d <= <%= f%>

 <% else %>

这是 hql.erb 文件的一部分,试图从中编写查询,我可以将 erb 文件的 unless 部分转换为 sql 函数

【问题讨论】:

  • 嗯,那是一团糟。你可以做任何事情,尽管有些事情你不应该做。这是其中之一。将您的查询移至模型(我怀疑您是否需要原始 SQL,只需使用标准 ActiveRecord 方法)。将您的数据提取移动到控制器。并让视图只保留呈现逻辑。
  • 我没有原始查询,只有它们的一些 .erb 文件,我被困在如何定义第一行并在 sql 中执行除非
  • 啊,那么您是在使用 EBR 构建 查询吗?好吧,那是另一个故事了!好吧,您需要用更笼统的术语来说明您的问题。为什么需要将 ERB 转换为 SQL ?

标签: sql ruby-on-rails erb


【解决方案1】:

在 .erb 模板中, 中未包含的所有内容都将被评估为文本。修复您所拥有的,您可能想尝试以下方法:

<% a = Array.wrap(params[:a]).join(', ') %>
<% unless a.blank? %>
  <%= a%>
<% end %>

<% b = Array.wrap(params[:where]).join(' AND ') %>
<% unless params[:dedup] %>
  <%= table_name %>
  WHERE <%= input_data_filter %>
  <% unless b.blank? %>
    AND <%= b %>
  <% end %>
  AND c - d <= <%= f%>
<% else %>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多