我正在使用Rails 4.2.3。尽管事实上我在模型中包含了“belongs_to”子句,但我无法在我的视图中显示关联。在我的app / models / my_object_time.rb文件中我有
class MyObjectTime < ActiveRecord::Base
belongs_to :my_object
end
在我的控制器中,我使用
将一些对象返回到视图中 @user_my_object_times = MyObjectTime.joins(:my_objects).where("my_object.user_id = #{session['user_id']}")
然后在我看来,我称之为
<% @user_my_object_times.each do |my_object_time| %>
<tr>
<td><%= my_object_time.my_object.name %></td>
但我收到了错误
Association named 'my_objects' was not found on MyObjectTime; perhaps you misspelled it?
我做错了什么?
编辑:在回复编辑时,我编辑了我的查询
@user_my_object_times = MyObjectTime.joins(:my_objects).where("my_objects.user_id = #{session['user_id']}")
不幸的是,我仍然得到错误。
答案 0 :(得分:0)
在MyObjectTime上找不到名为“my_objects”的关联;也许 拼错了吗?
您应该使用belongs_to
作为where
关联。同样在@user_my_object_times = MyObjectTime.joins(:my_object).where("my_objects.user_id = #{session['user_id']}")
#^ singular ^ plural
子句中,始终使用 关系的多元化名称(实际上,表名称) 。所以你的查询将是
collect