2011-02-27 73 views
2

我爲用戶模型重寫「to param」方法。而且我還替換了控制器查找方法。這樣做有問題嗎?一切似乎現在工作。重寫param方法的友好標識

用戶模型

def to_param 
name 
end 

users_controller

@user = User.find_by_name(params[:id]) 
+0

而不是使用自動生成的ID,你打算使用的名稱爲您的用戶模型的主鍵? – 2011-02-27 23:12:53

+0

我想是的。我這樣做了支架式機型。 – m80 2011-02-27 23:15:04

回答

0

我會建議採取下列步驟操作:

  • 確保名稱是唯一的。
  • 確保用戶模型的primary_key是'name'而不是'id'(User.primary_key)。許多寶石和模塊依賴於這個值是正確的。如果不是的話,你以後可能會遇到難以調試的問題。
  • 看看ActiveRecord的了「set_primary_key」聲明。這可能是一種簡單的方法來完成你正在做的事情。

一般來說,擁有除id以外的主鍵是完全正確的。這是當這個主鍵是不會自動產生了更多的困難,所以照顧這個,並確保你能properly set this attribute,並檢查它是獨一無二的。

+0

非常感謝... – m80 2011-02-27 23:24:04