Rails类别(或过滤器)链接在同一控制器中?

时间:2015-06-17 16:39:20

标签: ruby-on-rails ruby hyperlink model controller

无法理解如何使用links_to过滤rails视图中同一控制器中的内容。我的代码如下:

#index.html.erb(链接导航区域)

<nav>
    <%= link_to 'Daily Monitoring', root_path(:category => "dailymonitoring") %>
    <%= link_to 'Smoke Tests', root_path(:category => "smoketests") %> 
</nav>

#index.html.erb(续)

<ul id="results">
    <% if @reportlinks == "dailymonitoring" %>
         # dailymonitoring content
    <% elsif @reportlinks == "smoketests" %>
          # smoketests content
    <% end %> <!-- end conditional -->
</ul>

#reports_controller.rb

    if params[:category]
        @reportlinks = Report.where(:category => params[:category])
    else
        @reportlinks = Report.all
    end

#model(report.rb)

 class Report
   include ActiveModel::Model
   attr_accessor :reports, :smokereports
   belongs_to :reports, :smokereports, :reportlinks
 end

我得到的错误是未定义的方法`belongs_to&#39;报告:类&lt;顶部(必填)&gt; 错误。没有涉及数据库。我只是试图让我知道我想点击任何链接,并且只过滤if / else语句中的内容块。

我是否需要为if / else语句创建一个新的控制器才能工作?如果需要更多代码以便更好地理解,请告诉我。感谢。

1 个答案:

答案 0 :(得分:0)

belongs_toActiveRecord::Associations中定义,ActiveRecordActiveRecord的一部分。您手动包括ActiveModel::Model,它不提供任何与关联相关的功能。

  

使用不同的ActiveModel模块包含对象与ActionPack交互所需的接口。它包括模型名称内省,转换,翻译和验证。除此之外,它允许您使用属性哈希初始化对象,就像ActiveRecord一样。

假设您不需要整个Date <- c("6/1/2015", "6/3/2015", "6/4/2015", "6/5/2015", "6/8/2015") variable <- c(4,7,10,22,3) Date <-as.Date(Date, "%m/%d/%Y") library(xts) df <- as.xts(variable,Date) changes <-diff(df) 数据库持久性功能但需要关联样式,那么您需要手动处理。

因此,您必须定义自己的方法来追加/删除相关记录并跟踪它们。

ActiveRecord的关联功能与数据库持久性严格相关。