我在restaurants
中使用腳手架方法在滑軌中創建了一個簡單的滑軌應用程序。如何從控制器傳遞實例變量到視圖?
這是restaurants_controller.rb
的顯示和編輯控制器方法。請注意他們是如何只是空白方法:
# GET /restaurants/1
# GET /restaurants/1.json
def show
end
# GET /restaurants/1/edit
def edit
end
這是restaurants/show.html.erb
:
<p id="notice"><%= notice %></p>
<%= image_tag @restaurant.image_url %>
<p>
<strong>Name:</strong>
<%= @restaurant.name %>
</p>
<p>
<strong>Address:</strong>
<%= @restaurant.address %>
</p>
...
和restaurants/edit.html.erb
:
<h1>Editing Restaurant</h1>
<%= render 'form', restaurant: @restaurant %>
<%= link_to 'Show', @restaurant, class: "btn btn-link" %> |
<%= link_to 'Back', restaurants_path, class: "btn btn-link" %>
這裏是我的問題:我目前的理解(可能是錯誤的)是我們定義了實例變量,在這種情況下,@restaurant
在restaurant_controllers.rb
中,並且Rails自動連接控制器中定義的變量更好的意見。例如,在餐館控制器指數法:
def index
@restaurants = Restaurant.all
end
當我打電話在index.html.erb
@restaurants
,滑道可以調出@restaurants
從索引方法在views
使用。
哪裏軌得到show.html.erb
和即使show
和edit
方法@restaurant
實例變量edit.html.erb
在restaurants_controller.rb
都是空的方法呢?我使用Rails 5.
你的控制器裏有'before_action:set_restaraunt'嗎? –
您是否在控制器中使用CanCan和'load_and_authorize_resource'? – David