小编Ata*_*ang的帖子

高效的连接查询 - 可以使用ActiveRecord完成

我有4个型号,A,B,C和D.

class A < ActiveRecord::Base
  has_many :B
  has_many :C, :through => :B
end  

class B < ActiveRecord::Base
  belongs_to :A  
  has_many   :C
  has_many   :D, :through => :C
end  

class C < ActiveRecord::Base    
  belongs_to :B
end    

class D < ActiveRecord::Base    
  belongs_to :C
end    
Run Code Online (Sandbox Code Playgroud)

我有一个非常天真的实现,非常明显......

<% A.B.each do |b| %>
  <%= b.number %>
  <% b.C.each do |c| %>
    <%= c.name %>
  <% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

获得All C for A的最佳方法是什么?获得All D for A的最佳方式是什么?

我希望使用带有"created_at"值的order_by子句而不是迭代B来获取所有'C'.

可能是我错过了一些ActiveRecord魔法?

我感谢任何帮助.

activerecord join ruby-on-rails model-associations

4
推荐指数
1
解决办法
549
查看次数

rails 4 form_tag用法

我正在使用rails 4.0.2框架.我有一个图片脚手架,从'图片'的显示页面我正在努力添加一个简单的内置表单,以将其转发到电子邮件地址.
输入电子邮件并单击"转发"按钮后,它应在电子邮件中发送当前图片链接.但我正在努力实现这一目标.我使用动作'create'创建了一个控制器'forward_picture',并将其作为资源添加到config/routes文件中.然后我在图片视图中创建了一个表单,如下所示.

意见/图片/ show.html.erb

...   
<%= form_tag(:controller => "forward_picture", :action => "create") do %>  
  <%= hidden_field_tag :picture_id, params[:@picture.id] %>  
  <%= label_tag :email %>  
  <%= text_field_tag :email, params[:email] %>  
  <%= submit_tag "Forward" %>    
<% end %>  
Run Code Online (Sandbox Code Playgroud)

这是在forward_picture_controller中嵌入表单,传递参数和调用适当的操作(创建)的正确方法吗?如何在rails 4中使用强参数策略来访问控制器中的参数?在控制器中,我可以构造一个适当的URL来发送给定的电子邮件地址.

任何帮助表示赞赏.

forms ruby-on-rails

4
推荐指数
1
解决办法
1万
查看次数