【发布时间】:2017-01-26 11:34:15
【问题描述】:
我怎样才能用 haml/rails 做这样的事情:
- if current_user.is_seeking_job == true && current_user.is_seeking_contract == true
- @jobsforyou.where.not(user_id: current_user, is_finished: true, is_active: false).where("sort < ?", 2).limit(10).each do |job|
- else
- @jobsforyou.where.not(user_id: current_user, is_finished: true, is_active: false).where("sort > ?", 1).limit(10).each do |job|
%li
显然我收到了一个错误,因为我在第一个循环中没有代码。
问题是我有不止这两个条件,%li 里面有很多代码。
当然,我可以针对每个条件复制它,它会起作用,但是如果不一遍又一遍地复制同一段代码,如何做到这一点呢?
提前感谢您的帮助!
【问题讨论】:
-
这个问题可能更适合CodeReview,而不是这里。我还建议您发布更完整的代码版本——如果缺少潜在的重要信息,很难给出建议!
-
根据您发布的代码,显而易见的事情是完全删除无用的循环 - 如果您能阐明为什么不能这样做,您可能会得到更有帮助的答案。
-
@Gugubaight 这个逻辑必须在控制器中处理。在视图中添加此类条件是非常糟糕的做法。
-
我根据 pdoherty926 的回答将此添加到我的控制器中:)
标签: ruby-on-rails ruby-on-rails-4 haml