2011-09-01 58 views
0

出于某种原因,在我的功能make_feed_preference甚至不工作,@user.feed_preference永远不会改变,即使我硬编码它@user.feed_preference = "foobar"但它看起来像redirect_to 'posts'工作正常。功能通过的link_to调用,当硬编码

的错误是,feed_preference总是nillink_to被按下后,也使(if feed_preference == nil)总是true。我仍然不知道是什么原因造成的。

make_feed_preference存储在users_controller中。它的作用是显示一个新闻源,但排序根据偏好值(例如, “时间”, “trending_value”, “追随者”)

<%= 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

乔恩,你可以添加你的解决方案作为答案和'接受'它吗? – twe4ked

回答

0

我会在这里用一个条件:

redirect_to '/posts', :notice => if @user.save 
    'You have updated your feed preference.' 
else 
    'Your input was invalid.' 
end 

你会发现@user验证很可能失败。