0
我想弄清楚如何只更新对象,如果某些领域已经改变。在最基本的层面上,如果说提交的startdate或enddate不同,但我不想更新它,但如果提交的user_id不同,则不会。这就是说,如果日期不同,并且它更新,我想使用它的user_id参数。我有SSN方法彻底删除参数,但是,似乎是它会导致用户没有更新:只更新一个对象,如果某些领域改变
形式:
<%= form_for(@enrollment) do |f| %>
<div class="field">
<%= f.label :enddate %><br>
<%= f.text_field :enddate %>
</div>
<%= f.submit 'Term Plan'%>
<%= f.submit 'Cancel Plan', name: 'cancel_plan'' %>
控制器:
def update
authorize @enrollment
@enrollment.update_attributes(enrollment_params)
@enrollment.user=current_user
if params[:cancel_plan]
@[email protected]
end
if @enrollment.save
redirect_to @enrollment, notice: 'Enrollment was successfully updated.'
else
render action: 'edit'
end
end
所以在上面的例子中,我只想保存@enrollment对象,如果结束日期与之前不同,则不是如果只是用户是不同的。
任何想法,建议等都将不胜感激!
对不起,疑问句也不清楚..做ü想知道,如果某些特定ATTR已更改/更新? – RAJ 2014-08-27 16:16:06
好点。我将它添加到上面,可能仍然不能很好地表达我的问题:因此,在上面的示例中,如果** enddate **与之前不同,则只想保存@enrollment对象,而不仅仅是**用户* *是不同的。 – MechDog 2014-08-27 16:29:57
@MechDog你可以尝试使用这段代码:'@ enrollment.enddate_changed? && @ enrollment.save'? – Thanh 2014-08-27 16:35:57