gpt4 book ai didi

ruby-on-rails - 当 "views"应设置为 RoR 中的条件时,条件(if/else)的语法?

转载 作者:数据小太阳 更新时间:2023-10-29 08:35:26 25 4
gpt4 key购买 nike

我的导航栏在标题下方...我想根据访问者所在的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com