我有一个简单的快速问题。我有一个网址:
http://www.mealnut.com/foodios/cakerystore
需要使它成为
http://www.mealnut.com/cakerystore
任何人都可以告诉如何做到这一点?我是新来的轨道。
我有一个简单的快速问题。我有一个网址:
http://www.mealnut.com/foodios/cakerystore
需要使它成为
http://www.mealnut.com/cakerystore
任何人都可以告诉如何做到这一点?我是新来的轨道。
你的问题仍然很不清楚,但我认为你需要在你的 routes.rb 中包含一个包罗万象的规则:
get "*username" => "foodios#user_action"
这将允许您为每个用户拥有根 url,这是我认为您真正要求的:
http://www.mealnut.com/cakerystore
http://www.mealnut.com/bakeland
http://www.mealnut.com/cookieworld
这应该是您的 routes.rb 文件中定义的最后一条路线。 这是因为此路由将匹配文件中前面定义的其他路由不匹配的所有URL。(Rails 尝试按照定义的顺序匹配路由。)
此路由将 url 指向FoodiosController::user_action
操作(例如方法)。(当然,您可以重命名user_action
。)
此操作将定义如下:
# In FoodiosController
def user_action
# params[:username] comes from '*username' in the route
@user = User::find_by_username(params[:username])
unless @user.nil?
# not sure what you want to show, but this would do user#show
render @user
# or you can render some other path
else
# redirect to some error page
end
end
因为这条路线捕获了所有东西,所以那里的其他情况需要做一些适合的事情,不仅是无效的用户名,还有你可能得到的任何类型的错误 URL。现在都被这个动作控制了。
对于它的价值,我认为你最好不要这样做。听起来您应该有一个 UsersController,并且您的 URL 应该是http://www.mealnut.com/users/cakerystore
. 这会容易得多。
信用/进一步阅读:
我怀疑这是您问题的答案。但这是你问题的答案。
'http://www.mealnut.com/foodios/cakerystore'.gsub(/\/foodios/,'')