【问题标题】:Setting a variable within a link_to, in rails 4在rails 4中的link_to中设置变量
【发布时间】:2019-09-27 13:26:21
【问题描述】:

我正在尝试在一系列 link_to 链接中设置变量,以便每个链接都与一个值相关联。


在一个页面上,我有一个循环,它根据我的数据库中的值创建一个链接列表:

<ul>
  <% @alldata.each do |x| %>
    <li><%= link_to "#{x.name}", charts_path %></li>
  <% end %>
</ul>

charts_path 链接到显示 chartkick 图表的视图:

<%= line_chart @data.group("year").sum("magnitude") %>

从控制器获取数据:

def graphdata(x)
  @data = Model.all.where(name: x).select("magnitude, year")
end

def charts(?variable)
  @data = graphdata(?variable)
end

我想更改我的列表循环以将 ?variable 设置为 x.name。例如:

<li><%= link_to "#{x.name}", charts_path, ?variable = "#{x.name}" %></li>

这样我就有了一个链接列表,这些链接指向不同的图表,其中包含特定于该链接的数据。


我可以为每个名字定义一个特定的视图:

def chart1
  @data = graphdata("name1")
end

def chart2
  @data = graphdata("name2")
end 

但这似乎是非常糟糕的编程......


如果这个问题很糟糕,我很抱歉,我对编程非常陌生。

任何帮助将不胜感激!

谢谢

【问题讨论】:

    标签: ruby-on-rails link-to


    【解决方案1】:

    尝试使用此代码。

    <%= link_to "#{x.name}", charts_path(x.name) %>
    

    【讨论】:

      【解决方案2】:

      如果我理解正确,您希望将 x 的名称作为查询字符串变量传递。您可以使用 charts_path 助手轻松完成此操作:

      <%= link_to "#{x.name}", charts_path(variable: x.name) %>
      

      charts_path 接受将随请求一起传递的哈希

      【讨论】:

      • 感谢您的帮助,我不得不在我的图表控制器中使用 params[:variable] 获取变量,然后它就奏效了
      【解决方案3】:

      我遇到了类似的状态,我使用以下方法让我的模块工作

      `<%= link_to n.subject, notifications_message_path(notification_id: n.id)%>`
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-16
        • 2012-02-05
        • 1970-01-01
        • 2013-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多