2012-09-04 83 views
1

如果可以,我想隱藏URL中的user_id。Ruby on Rails - 在URL中隱藏user_id

http://domain.com:3000/users/1

這裏是頁信息。


行動:顯示 控制器:用戶 ID:「1」

+1

目的是什麼?你只是想使用非序列標識符來避免暴露「可猜測」的信息?或者您是否想僅從會話中訪問當前用戶的ID,並假設如果沒有您指的是當前用戶的ID?要麼...? –

+0

我不希望人們知道我有多少訂閱者。我在下面得到了答案。謝謝。 –

+1

暴露一個ID不會告訴任何人你有多少用戶。另外,你可以從任意數字開始,或者使用GUID等。還有一個[gem for this](https://github.com/norman/friendly_id)。 –

回答

1

URL中的ID是必需的,這樣的控制器/動作知道它應該在頁面上顯示哪些用戶。在這種情況下,它向用戶顯示ID爲1的用戶,但在其他情況下,您可能想要顯示其他用戶的詳細信息。

可以用URL中的id替換其他識別信息,例如username

爲此,請參見http://railscasts.com/episodes/63-model-name-in-url。您只需重寫模型中的to_param方法。

+0

感謝您的幫助 –

0

要做到這一點。在用戶模式確保您有:

is_sluggable :whatever-attribute-you-want-to-mask-users/1 

在用戶的控制器使用方法:

@user = User.find_using_slug(params[:user])