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可能失败了。