在Rails4中找不到预期的行为

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Rails4中找不到预期的行为相关的知识,希望对你有一定的参考价值。

我正在将我的应用程序从rails3升级到rails4。在friendship.controller.rb中我有一行@friend = User.find(params [:friend_id])当然这应该识别友谊表中与friend_id值相对应的id的朋友。它返回一个空白。 User.find(params [:id])返回340,这是友谊的id

有任何想法吗?

class FriendshipController < ApplicationController
  include ProfileHelper
  before_filter :setup_friends

  def create
    Friendship.request(@user, @friend)
    user = @user
    friend = @friend

    #MakeMailer.friend_request(user,friend).deliver

    flash[:notice] = "Friend request sent."
    redirect_to user_path(@user.id)
  end

  def accept
    if @user.requested_friends.include?(@friend)
      Friendship.accept(@friend, @user)
      flash[:notice] = "Friendship with #{@friend.login} accepted!"
    else
      flash[:notice] = "No friendship request from #{@friend.login}."
    end
    redirect_to user_path(@user.id)
  end

  def decline
    if @user.requested_friends.include?(@friend)
      Friendship.breakup(@user, @friend)
      flash[:notice] = "Friendship with #{@friend.login} declined"
    else
      flash[:notice] = "No friendship request from #{@friend.login}."
    end
    redirect_to user_path(@user.id)
  end

  def cancel
    if @user.pending_friends.include?(@friend)
      Friendship.breakup(@user, @friend)
      flash[:notice] = "Friendship request canceled."
    else
      flash[:notice] = "No request for friendship with #{@friend.login}"
    end
    redirect_to user_path(@user.id)
  end

  def delete
    if @user.friends.include?(@friend)
      Friendship.breakup(@user, @friend)
      flash[:notice] = "Friendship with #{@friend.login} deleted!"
    else
      flash[:notice] = "You aren't friends with #{@friend.login}"
    end
    redirect_to user_path(@user.id)
  end

  private

  def setup_friends
    @user = @current_user
    @friend = User.where(:id => params[:friend_id])
  end
end
答案

User.find(id_of_user)方法默认使用用户的id而不是任何其他属性,如果你想通过其他参数搜索,你可以使用wherefind_by_attribute

User.where(:friend_id => params[:friend_id])

User.find_by_friend_id(params[:friend_id)

以上是关于在Rails4中找不到预期的行为的主要内容,如果未能解决你的问题,请参考以下文章

学习 PyQt5。在我的代码片段中找不到错误 [关闭]

在 Rails 4 生产环境中找不到资产的 404 错误

Android 片段,在 TabHost 中找不到 id 的视图

添加两个窗格的平板电脑布局会导致在移动设备中找不到视图(小于w600dp)

在 android studio 中找不到符号错误

如何拯救在rails中找不到404页面?