我似乎无法获得我的条件的逻辑来为此查询工作。我可以让@showemail = PreferenceSetting.find(1)工作......但是当我尝试添加条件时,它会不断地抛出一个" NoMethodError"。我在rails上相当新,我真的坚持这个。
def show
@showemail = PreferenceSetting.where('user_id = ?', params[:u]).where('user_preference_id = ?', 1)
end
这是我的视图代码
<%= @showemail.prefers %>
每次我尝试访问&#39; show&#39;查看它说&#34;未定义的方法`更喜欢&#39;。
我的模特
class PreferenceSetting < ActiveRecord::Base
belongs_to :users_preference, inverse_of: :preference_settings
belongs_to :user, inverse_of: :preference_settings
end
类UserPreference&lt;的ActiveRecord :: Base的 has_many:preference_settings,inverse_of :: user_preference 端
答案 0 :(得分:1)
find
返回一个实例,而where
方法返回一个ActiveRecord :: Relation对象。
调整show
操作的代码,如下所示:
def show
conditions = {user_id: params[:u], user_preference_id: 1}
@showemail = PreferenceSetting.where(conditions).last
# you could also use: PreferenceSetting.find_by(conditions)
end