link_to调用的函数即使在硬编码时也不起作用

出于某种原因,在我的函数make_feed_preference@user.feed_preference永远不会改变,即使我将其硬编码为@user.feed_preference = "foobar"但看起来redirect_to 'posts'工作正常。

错误是即使在按下link_to之后, feed_preference总是nil ,因此( if feed_preference == nil )始终为true 。 我仍然不知道是什么导致了这一点。

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

  :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 

注意:我通过将新类附加到用户来修复它。

我会在这里使用条件:

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

你会发现@uservalidation可能失败了。