例如,如果我們在控制器中定義了方法index
,並且在index
中有一個實例變量@var
,我們可以直接在index.html.erb中訪問@var
而不指定任何內容。那麼查看控制器的一部分?視圖中的html.erb文件可以訪問控制器中的局部變量嗎?如何理解Rails中視圖和控制器之間的關係?是視圖控制器的一部分?
2
A
回答
1
控制器是處理來自瀏覽器的傳入請求並同時處理模型中的數據的事件處理程序。控制器將處理來自用戶交互的請求,即來自鼠標的鍵盤輸入或點擊事件。控制器的響應然後在視圖中輸出。因此,如果您想在index.html.erb
中使用UserController
,那麼在index.html.erb
中有index
動作,如果您想通過循環訪問這些users
,則可能會進行某種類似的設置。
控制器
class UsersController < ApplicationController
def index
@users = User.all #Returns an array of all users
respond_to do |format|
format.html { render "users/_users", :locals => { :users=> @user } }}
end
Index.html.erb
<table>
<thead>
<tr>
<th>Name</th>
</tr>
</thead>
<tbody>
<% @users.each do |user| %>
<tr>
<td> user.name</td>
</tr>
<% end %>
</tbody>
</table>
更新:
好了,所以我覺得你的意思是發送一個局部變量,並在訪問它風景。除此之外,已知使用局部變量似乎是可取的,可以在應用範圍內使用局部變量來避免依賴性。所以如果是這種情況,並且你想通過局部變量進入局部變量,你可以使用:locals
來保持它的清潔。例子如下:
render :partial => 'my_partial', :locals => { :some_variable => some_variable, :value=> 'value' }
希望這清除東西
0
視圖是從Rails中控制器單獨的對象。控制器在渲染視圖時將其實例變量包含在視圖的上下文中。您應該認爲這是傳遞約定的特殊參數,而不是違反封裝(訪問控制器的私有變量的視圖)。 Rails使用這種約定避免將視圖的(片段)結構反映到從控制器傳遞到視圖的字段中。由於值以相對非結構化的方式從控制器傳遞到視圖,因此我們可以靈活地重構視圖,而不必對控制器進行太多更改。
相關問題
- 1. 瞭解模型視圖和控制器之間的關係
- 2. 如何在呈現視圖控制器和呈現的視圖控制器之間建立關係?
- 3. 關閉父視圖控制器和子視圖控制器
- 4. 控制器和視圖之間的關係
- 5. 分割視圖控制器必須是根視圖控制器
- 6. 在拆分視圖控制器中調整主視圖控制器和詳細視圖控制器的大小?
- 7. 視圖控制器之間的選擇
- 8. 視圖控制器之間的通信
- 9. 如何使用一個控制器視圖的局部視圖使用Ruby另一個控制器on Rails的
- 10. 視圖部分的控制器簡介
- 11. 視圖和控制器的Rails助手?
- 12. 從一個控制器視圖到另一個控制器視圖的ASP.NET MVC 3 Razor渲染部分視圖
- 13. 瞭解視圖控制器
- 14. 初始視圖控制器和選項卡視圖控制器
- 15. 如何設計控制器,組件,視圖和助手之間的關係
- 16. 如何顯示容器視圖視圖控制器和隱藏容器視圖視圖控制器
- 17. 從另一個視圖控制器通知視圖控制器
- 18. 關閉當前可視視圖控制器下方的視圖控制器
- 19. 視圖控制器分離
- 20. 在視圖控制器之間導航?
- 21. 在視圖控制器之間切換
- 22. 如何呈現具有一個視圖控制器的視圖控制器?
- 23. 檢測控制器中的視圖或部分視圖
- 24. MVVM在視圖和視圖控制器之間具有繼承
- 25. 通過點擊視圖控制器的外部關閉部分顯示的模態視圖控制器
- 26. iPhone如何將視圖控制器的視圖添加到另一個視圖控制器的視圖?
- 27. 如何在視圖控制器數組內部釋放視圖控制器?
- 28. 如何在視圖控制器中關閉視圖控制器中的父視圖?
- 29. 設置根視圖控制器的模態視圖控制器
- 30. 視圖控制器上的表視圖控制器
因此,由於視圖可以訪問實例變量,它可以訪問控制器中的局部變量嗎?這是我的問題的主要觀點。 (我可能不擅長表達我的問題。) – ZeroNegOne 2013-04-10 02:54:49
@ZeroNegOne查看我的更新 – David 2013-04-10 03:10:13