在ruby中写入条件的正确格式,然后使用HAML标记内的字符串插值将输出转换为字符串

问题描述 投票:0回答:1

我正在修复项目前端的rails开源项目中的ruby中的bug。我是ruby on rails,HAML等的新手。以下代码行给了我很多麻烦。

我想知道格式化这是什么样的正确方法。还有,有没有办法编写辅助函数来将条件转换为函数调用?任何帮助将不胜感激。

我尝试了几种格式,但开发人员希望我将if-else分解成几行。我无法做那项工作。

6:       %strong =
7:       "#{
8:         - if @enterprise.is_primary_producer
9:           = t('.producer_profile')
10:         - else
11:           = t('.profile')

我希望渲染视图,但我得到语法错误。

ruby-on-rails-3 if-statement haml string-interpolation
1个回答
0
投票

像这样的东西?

%strong
  - if @enterprise.is_primary_producer
    = t('.producer_profile')
  - else
    = t('.profile')

我个人会这样做:

- t_key = @enterprise.is_primary_producer ? '.producer_profile' : '.profile'
%strong= t(t_key)

如果要将其移动到帮助器,只需在application_helper.rb中的某个位置定义它

def some_name_for_the_method(enterprise)
  t_key = enterprise.is_primary_producer ? '.producer_profile' : '.profile'
  I18n.t(t_key)
end

并在视图上

%strong= some_name_for_the_method(@enterprise)
© www.soinside.com 2019 - 2024. All rights reserved.