【问题标题】:rails 5 - render different links depending on a pagerails 5 - 根据页面呈现不同的链接
【发布时间】:2020-08-03 17:11:24
【问题描述】:

我在页面上有 4 个链接(连衣裙、裙子、衬衫、帽子),我希望它们始终根据页面而有所不同。假设我们点击帽子,那里的链接会是衬衫、连衣裙、裙子,所以我们当前所在的类别将不会显示。

我在这里发现了类似的东西 [1]:Render different show pages with category in ruby on rails

但这并不是我真正想要的,因为我需要渲染几个链接(不是一个)。 我的想法是创建 4 个不同的部分并渲染 3 个链接,如果参数 = 到我们不想显示的那个。这是一个好的想法,还是有更好的方法?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    您没有提供确切的代码,因此根据我假设您大概拥有的代码,您可以执行以下操作:

    # Somewhere in your controller
    def index # or any action really
      ...
      @current_category = Category.find(params[:category_name]) " # (Or however you want to refer to your category object.
      @all_categories = Category.all # (Or an array of plain strings, which would then better be set in some before_action hook so it is present in each of your different pages.)
      ...
    end
    
    # In your view
    
    (@all_categories - @current_category).each do |category|
      <%= render "categories/link_card", category: category %>
    end
    

    然后在您的部分categories/_link_card.html.erb 中,您可以使用代码显示任何类别的链接,使用输入变量类别来获取您的类别的确切详细信息。 (例如名称、网址)。

    【讨论】:

    • 谢谢!这种方法对我来说是完美的,没有条件语句:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2022-11-30
    相关资源
    最近更新 更多