2010-03-03 3 views
5

Всегда есть черная магия, когда дело доходит до Rails, и я не могу найти документацию, чтобы помочь мне разобраться в этом. То, что делает redirect_to, явно прямолинейно. На самом деле, этот вопрос даже не связан напрямую, но аргумент, который я вижу, передается в redirect_to часто и не может понять, откуда этот аргумент. Например, если вы эшафот новый объект, скажем, «пользователь», вы увидите код, как это в user_controller.rb:Ruby on Rails redirect_to аргументы

def destroy 
    @user = User.find(params[:id]) 
    @user.destroy 

    respond_to do |format| 
     format.html { redirect_to(users_url) } 
     format.xml { head :ok } 
    end 
    end 

Вопрос в том, что именно здесь users_url? От куда это? Может ли кто-нибудь указать мне в правильном направлении, насколько документация идет?

ответ

1

users_url в этом случае является полным URL-адресом для пользователей просмотра. Это автогенерируется Rails action_dispatch на основе вашего объекта домена. Если вас интересует документация по этому вопросу, вы можете прочитать его from here.

НТН

3

Существует много названных маршрутов, которые Rails автоматически генерирует, если вы используете маршруты, основанные на ресурсах. Вы можете увидеть их, запустив rake routes. Другими примерами будут edit_user, user и new_user. Добавив _url к этому имени, имя будет разрешено для соответствующего URL-адреса. И URL-адрес - это то, что нужно redirect_to.

+1

Некоторые полезные материалы чтения по данному вопросу можно найти на RailsGuides: http://guides.rubyonrails.org/routing.html –

+0

Это последнее утверждение не верно. 'redirect_to' будет счастливо идти по пути. Используйте форму '* _url', если вам нужен полный URL, а не относительный путь. –

Смежные вопросы