【问题标题】:link_to problem链接到问题
【发布时间】:2011-05-19 20:35:29
【问题描述】:

我想在 link_to 中显示产品计数,link_to 是 application.erb.html 中部分显示的一部分,问题是,我的应用程序控制器中有一个名为 products_on_cart 的方法,它返回产品计数,当我尝试时这段代码:

<%= link_to "<%= products_on_cart%>", :controller=>"carts", :action=>"index"%>

rails 给我一个错误:

"语法错误,意外'>'
...er=>"carts", :action=>"index"%>"

我真的不明白为什么,有人可以帮助我吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    您不能在&lt;%= .. %&gt; 内部使用&lt;%= .. %&gt;

    <%= link_to products_on_cart, [:carts] %>
    

    【讨论】:

    • 出现另一个问题,现在 rails 看不到我在应用程序控制器中的 products_on_cart 方法
    • 在 ApplicationController: helper_method :products_on_cart
    【解决方案2】:

    您正在嵌套 ERb 标签。确保products_on_cart() 可用作辅助方法,然后重写您的link_to 代码而不使用嵌套的ERb 标签,如下所示:

    <%= link_to products_on_cart(), :controller => "carts", :action => "index" %>
    

    要使products_on_cart() 成为辅助方法,请将其移至app/helpers/application.rb,或在控制器中将其声明为辅助方法:

    def products_on_cart()
      # method definition goes here
    end
    
    helper_method :products_on_cart
    

    如果您只需要从视图而不是控制器访问products_on_cart,则将其放入app/helpers/application.rb 是首选方式。如果您需要在控制器和视图中都使用它,请改用上面的helper_method 方法。

    【讨论】:

      猜你喜欢
      • 2023-03-28
      • 2011-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多