出于某种原因,在我的函数make_feed_preference
中,@user.feed_preference
永远不会更改,即使我将其硬编码到@user.feed_preference = "foobar"
,但看起来redirect_to 'posts'
工作正常。
即使在按下feed_preference
之后,nil
仍然是link_to
,因此(if feed_preference == nil
)始终为true
。我仍然不知道造成这种情况的原因。
make_feed_preference
存储在users_controller中。它的作用是显示新闻源,但根据偏好值排序(例如“时间”,“趋势值”,“粉丝”)
<%= link_to displayIcon(1), {:action => :make_feed_preference, :id => current_user.id, :preference => "trending value", :controller => "users"}, :method => :post %>
def make_feed_preference
@user = User.find(params[:id])
@user.feed_preference = params[:preference]
@user.save
redirect_to '/posts'
end
注意:我通过将新类附加到用户来修复它。
答案 0 :(得分:0)
我会在这里使用条件:
redirect_to '/posts', :notice => if @user.save
'You have updated your feed preference.'
else
'Your input was invalid.'
end
您会发现@user验证可能失败。