【问题标题】:How to combine 2 index view into 1?如何将 2 个索引视图合并为 1 个?
【发布时间】:2013-07-13 16:03:59
【问题描述】:

索引视图(显示为其自己的模型创建的所有数据)

generatorscontroller.rb

def index 
    @generators = Generator.all
  end

resultscontroller.rb

def index
    @results = Result.all
  end

我想要一个索引页面,我可以在其中查看生成器的所有数据以及结果的数据。我该怎么做?

我有 2 个模型 - 生成器和结果。

生成器 has_many :results

结果 belongs_to :generator

发电机数据:

结果数据:

我想要的是下面显示的图像以及值。这些值现在在单独的页面中生成(生成器的索引和结果的索引)。我想要的是将它们合并在一起。

【问题讨论】:

  • 制作部分并在需要的地方包含它们
  • HungryCoder : 你能告诉我更多关于你刚才建议的方法吗?
  • 部分代码怎么写?我看到了一些他们通常渲染到同一目录中的文件的教程。但对于我的情况,我应该如何渲染?我有views/Generator/index.html.erb 和views/Results/index.html.erb 我应该如何渲染它们?

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


【解决方案1】:

你有很多可能性:

  1. 创建一个控制器,例如 results_geneators_controller.rb 并执行两个查询
  2. 使用联合查看您的数据库,您将拥有一个具有一个查询和一个索引的控制器
  3. 通过生成器将结果显示到您的视图中以构建表格列。
  4. 在您的控制器中构建一个散列,其中包含您要查找表的最终结果。

【讨论】:

  • j.avi 你怎么做第三个选择?我见过很多例子,但所有这些都不起作用。当我调用 generator.results.ncbi_ref_seq(我的 Result 中的属性数据的 1 个)时,我收到一条错误消息,说 undefine method 'ncbi_ref_seq'
  • 在我的控制器索引中我试过 @results = Result.include(:generators) 。在视图索引中我尝试调用 result.generator.primer_length (但它给了我 undefine 方法primer_length)... Primer length 是属于 Generator 类的属性
  • 嗯...我在想,这个属性是可访问的,受保护的...?
  • 属性是可访问的。对于 generator.rb attr_accessible :results_attributes,:choice, :primer_length, :random_primer_generated, :genome_sample, :generator_id for Result.rb: attr_accessible :ncbi_ref_seq,:genome_seq, :genome_sample
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-29
  • 1970-01-01
  • 2020-04-13
相关资源
最近更新 更多