Hor*_*ice 7 ruby ruby-on-rails ruby-on-rails-3
我正在研究rails指南上的ruby,即http://guides.rubyonrails.org/layouts_and_rendering.html上的"布局和渲染"主题
我很困惑将实例变量传递给redirect_to方法.这怎么可能?我认为redirect_to与重定向到另一个网页或网址有关.
在指南中给出的示例中,它说明如下:
2.2.2渲染动作视图
如果要在同一模板中呈现与不同操作对应的视图,可以使用带有视图名称的render:
Run Code Online (Sandbox Code Playgroud)def update @book = Book.find(params[:id]) if @book.update_attributes(params[:book]) redirect_to(@book) else render "edit" end end
渲染"编辑"完全有意义,它将再次渲染新形式.但是世界上还在发生redirect_to(@book)什么?究竟是什么呈现以及如何将书籍对象重定向到?顺便说一句,书籍模型有专栏,名称,作者,页面等...
Nis*_*ant 18
redirect_to(options = {},response_status = {})将浏览器重定向到选项中指定的目标. 记录 - 将通过使用选项调用url_for生成URL,该选项将引用该记录的命名URL.
所以,当一个人做的redirect_to(@book) @book是一个特定的记录id.
因此,相关记录(在本例中为@book)show方法用作模板.
除此之外,如果您查看routes.rb定义这些路径的文件,您会注意到
resources :books
Run Code Online (Sandbox Code Playgroud)
现在这条路线基本上被翻译为(你可以通过运行看到rake routes)
books GET /books(.:format) books#index
POST /books(.:format) books#create
new_book GET /books/new(.:format) books#new
edit_book GET /books/:id/edit(.:format) books#edit
book GET /books/:id(.:format) books#show
PUT /books/:id(.:format) books#update
DELETE /books/:id(.:format) books#destroy
Run Code Online (Sandbox Code Playgroud)
注意book GET /books/:id books#show- 当你这样做时,它会匹配redirect_to(@book)
| 归档时间: |
|
| 查看次数: |
3941 次 |
| 最近记录: |