2011-09-01 54 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驗證很可能失敗。