Rails ビュー ヘルパーとの間で渡されるパラメーターと結果の処理に混乱しています。
module CasesHelper
    def case_owned(owner,cur_usr)       
        return false if (owner.nil?)
        return false if (cur_usr.nil?)
        x = User.find(cur_usr)
        y = User.find(owner)  
        ## this does not returns 'true' 
        ## when expected 
        ## return true if (owner == cur_usr)
        return true if (x == y)     #<<<< This line works
        return false
    end
end
これはビューコードです:
    <td><%= link_to 'Show', c %></td>
    <td><%= (link_to 'Edit', edit_case_path(c)) if case_owned(c.user_id,current_user) %></td>
    <td><%= (link_to 'Destroy', c, method: :delete, data: { confirm: 'Are you sure?' })  if case_owned(c.user_id,current_user) %></td>
機能するコードはどのように機能し、コメントアウトされた行は機能しないのでしょうか? 平等を確保するために User.find() 呼び出しが必要なのはなぜですか。そして、どうすれば:
   User.find(cur_usr) == User.find(owner)
...に評価するtrue
いつ:
   cur_usr == owner
... に評価されますfalse
認証に Devise gem を使用しており、 current_user メソッドを提供しています。最初に「cur_usr == owner」行で上記をコーディングしましたが、User.find() アプローチを使用するとうまくいくことに気付きました。find() に渡されたパラメーターがどのように等しくないと見なされるのか、私には混乱しますが、返されるオブジェクト (レコード) は等しいと評価されます。ここで何が欠けていますか?
Ruby がオブジェクトをパラメーターとして渡す方法や、Rails の命名規則がここで「役立つ」方法についてコメントを送信してください。よろしくお願いします!