ruby-on-rails - 在 ruby 中编写条件的正确格式,然后使用 HAML 标记内的字符串插值将输出转换为字符串
问题描述
我正在修复项目前端的 ruby on rails 开源项目中的一个错误。我是 ruby on rails、HAML 等的新手。以下代码行给我带来了很多麻烦。
我想知道格式化它的正确方法是什么。此外,有没有办法编写一个辅助函数来将条件转换为函数调用?任何帮助将不胜感激。
我尝试了几种格式,但开发人员希望我将 if-else 分成几行。我无法完成这项工作。
6: %strong =
7: "#{
8: - if @enterprise.is_primary_producer
9: = t('.producer_profile')
10: - else
11: = t('.profile')
我希望视图被渲染,但我得到了语法错误。
解决方案
像这样的东西?
%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)
推荐阅读
- ruby-on-rails - 通过 Rails API 上的 PUT 请求中的参数传递的嵌套属性管理文件
- android - OkHttp3 响应在 android 的自定义适配器类中显示错误
- sqlite - Sqlite 查询问题 - 如何将代码从 SQLite v0.9.0 转换为 v1.0.0
- javascript - iframe问题主页面滚动
- python - 使用 Python 更新 terraform (.tf) 文件
- android-studio - 尽管有对象,为什么当我开始活动时数组显示为空?
- javascript - 如何在 javascript 的类中正确添加事件侦听器?
- python - 如何绘制来自多个 CSV 的数据,每个 CSV 具有不同的列号
- android-studio - 在真实设备上测试 android 应用程序时如何显示日志?
- vba - 我在 VBA 中使用过滤器命令时遇到语法错误问题