Wil*_*ill 0 ruby ruby-on-rails
我有User与之has_many关系的模型UserFilter.UserFilter与...有belongs关系User.
在User模型中,我有一个名为的方法 update_user_filters(filter_params_array)
这种方法user_filters像这样修改
def update_user_filters(filter_params_array)
new_filters = []
old_filter = user_filters
filters_params_array.each do |filter_params|
if filter_params[:id].blank? #if the filter does not yet exist
new_filters << UserFilter.new(filter_params)
end
end
user_filters = new_filters
end
Run Code Online (Sandbox Code Playgroud)
这user_filters会将其设置为预期值,但在保存时不会更新user_filters数据库中的值.
但是,如果我将分配更改为以下内容,则确实如此.有人可以解释为什么会这样吗?
self.user_filters = new_filters
Run Code Online (Sandbox Code Playgroud)
请注意,当我user_filters在模型中首次引用时,在db中执行select操作,因此我不确定此本地方法在使用self和不使用时的工作方式不同self
user_filters只是创建一个局部变量.self.user_filters将它分配给对象.你可能想要的@user_filters = ....
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |