我有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魔法?
我感谢任何帮助.
我正在使用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来发送给定的电子邮件地址.
任何帮助表示赞赏.