Html 修复slimif-else语句中的冗余
我的slim文件中有以下if-else语句Html 修复slimif-else语句中的冗余,html,ruby-on-rails,ruby,ruby-on-rails-3,slim-lang,Html,Ruby On Rails,Ruby,Ruby On Rails 3,Slim Lang,我的slim文件中有以下if-else语句 - if x == 0 div Some cool title here - else div A different cool title goes here 这很好,但是我想在div中有一些子标签 - if x == 0 div Some cool title here div Ditto - else div A different cool title goes here div Ditto 这不利于干燥。无论如何,我可
- if x == 0
div Some cool title here
- else
div A different cool title goes here
这很好,但是我想在div中有一些子标签
- if x == 0
div Some cool title here
div Ditto
- else
div A different cool title goes here
div Ditto
这不利于干燥。无论如何,我可以减少这个代码,这样我就不必看到两次子标记了吗?到目前为止,我所做的任何尝试都导致我将子标记存在于一个div中,而不是另一个div中,这不是我想要的,我希望子标记无论如何都存在。在视图中复制代码时,应该使用分部来保存复制的代码,并在希望其出现的任何位置呈现分部。我知道您的简化代码只是为了显示您的意图,但如果它更真实,我可以提供进一步的建议 您还可以内联该逻辑:
div
= x == 0 ? 'Some Cool Title' : 'Some Other Title'
div Ditto
不过,比这更好的是将该逻辑移动到更合适的位置,例如使用类似宝石的Draper来创建presenter对象
div
= @my_presenter_object.title
div ditto
在视图中复制代码时,应使用分部来保存复制的代码,并在希望其出现的任何位置呈现分部。我知道您的简化代码只是为了显示您的意图,但如果它更真实,我可以提供进一步的建议 您还可以内联该逻辑:
div
= x == 0 ? 'Some Cool Title' : 'Some Other Title'
div Ditto
不过,比这更好的是将该逻辑移动到更合适的位置,例如使用类似宝石的Draper来创建presenter对象
div
= @my_presenter_object.title
div ditto
三级解决方案:
= my_helper(x)
然后在helper中,可以插值x
。非常强大三级解决方案:
= my_helper(x)
然后在helper中,可以插值x
。非常强大你能用一些真实世界的例子吗?“div x等于0”这件事很难理解。对不起,希望我更新的问题更有意义。你能用一些真实世界的例子吗?“div x等于0”这句话很难理解。对不起,希望我更新的问题更有意义。我投票赞成你第一句话的答案b/c:“当在视图中复制代码时,你应该使用一个片段来保存复制的代码,并在你希望它出现的任何地方呈现该片段。”谢谢!我投票赞成你第一句话的答案b/c:“当在视图中复制代码时,你应该使用一个片段来保存复制的代码,并在你希望它出现的地方呈现该片段。”谢谢!