【问题标题】:Puts Ruby / Rails text in view显示 Ruby / Rails 文本
【发布时间】:2012-10-16 05:07:02
【问题描述】:

我有一个基本问题。我相信你可以从这个问题中看出我对 ruby​​ 和 rails 有点陌生。

我有一个导航,我正在尝试应用“活动”类,这样我就可以对活动页面进行不同的样式设置。我用 before_filter 设置了这样的@cur_page:

def cur_page
    @cur_page = params['action']
end

我试图简单地输出文本“活动”,但它不起作用。

<li class="button <%= "active" if @cur_page == "contact" %>"><%= link_to "Contact", :public_contact %></li>

我也试过了:

<li class="button <%= puts "active" if @cur_page == "contact" %>"><%= link_to "Contact", :public_contact %></li>

我已经检查了实例变量以确保它已设置,并且它正在按我的预期显示“联系人”。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails puts


    【解决方案1】:

    :public_contact 是什么?我建议您使用 current_page? 助手而不是 @cur_page

    <li class="button <%= "active" if current_page?(public_contact_path(@contact) %>"><%= link_to "Contact", public_contact_path(@contact) %></li>
    

    public_contact_path(@contact) 替换为有效的路由助手。

    【讨论】:

    • 太棒了!不知何故,我知道有更好的方法让我去做。我不知道这种方法存在。谢谢!
    【解决方案2】:

    我认为问题在于双引号。

    使用“活跃”而不是“活跃” 使用“联系人”而不是“联系人”

    <li class="button <%= 'active' if @cur_page == 'contact' %>"><%= link_to "Contact", :public_contact %></li>
    

    【讨论】:

    • 实际上我将 cur_page 设置为 :contact 并忘记删除这些声明。所以之前的过滤器将它设置为“联系人”,然后在控制器中呈现页面之前,它被设置为:联系人。在我删除这些之后,它工作正常。感谢您的回复!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    相关资源
    最近更新 更多