作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我的导航栏在标题下方...我想根据访问者所在的 View 更改标题。
在 Ruby on Rails 中将 View 设置为条件时,条件 (if/else) 的语法是什么?
有点像...
<% if index.html.erb %>
<%= image_tag("index_background.jpg", alt: "index background") %>
<% elsif about.html.erb %>
<%= image_tag("about_background.jpg", alt: "index background") %>
<% else %>
<%= image_tag("default_background.jpg", alt: "index background") %>
<% end %>
如果您有任何问题,请随时提问!提前致谢!
最佳答案
我想你可以使用 action_name
:
# Returns the name of the action this controller is processing.
attr_internal :action_name
这将为您提供用户实际所处的操作,因此您可以使用 switch 语句,最终这会比 if 条件语句更适合您必须进行的验证增长:
# to be added in a helper
image = case action_name
when index then 'index'
when about then 'about'
else
'default'
end
image_tag("#{image}_background.jpg", alt: 'index background')
注意 action_name
没有记录,但它的工作方式与 ActionController::Metal#controller_name
相同.
或者我认为你可以创建一个辅助方法,它使用 asset_path 来使用 action_name 获取你的 Assets 路径,如果它因为找不到它而引发异常,那么你可以拯救它并显示默认值图片:
# helper
module ApplicationHelper
def action_image_background
asset_path "#{action_name}_background"
rescue Sprockets::Rails::Helper::AssetNotFound
asset_path "default_background"
end
end
# view
<%= image_tag action_image_background %>
关于ruby-on-rails - 当 "views"应设置为 RoR 中的条件时,条件(if/else)的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49590217/
我是一名优秀的程序员,十分优秀!