我想知道我怎麼可以在下列情況下Ruby on Rails的渲染
達到我的數據我有一個資源稱爲頁,它擁有所有可能的行動,並創造了在http://railscasts.com/episodes/117-semi-static-pages?autoplay=true提出了他的railscast瑞安大怒。現在我已經使用的佈局文件夾已跟隨
application.html.erb
_footer.html.erb
_header.html.erb
頁有一個固定鏈接,我想他們是在_footer部分,因此它可能是關於我們,條款與條件等等......
所以在這裏我做了什麼 application.html.erb
<%= render 'layouts/header' %>
<div class="container">
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
<%= yield %>
<%= render 'layouts/footer' %>
<%= debug(params) if Rails.env.development? %>
</div>
其中要求在佈局文件夾_footer這是_footer.html.erb
<footer class="footer">
<small>
Copyright <%= Time.now.year %>
</small>
<nav><%= render "pages/link" %>
<ol class="footer_pages">
</ol>
</nav>
</footer>
該呼叫在頁/ _link.html.erb 此文件是文件
<li>
<%= @pages.each do |page| %>
<%= page.name %>
<% end %>
</li>
在這點pages.each未初始化如果我是正確的,則不起作用因此,我在控制器applicationController中初始化了@pages = Page.all,因爲它是調用者。這個理論應該允許我閱讀它,但它仍然行不通!我做錯了什麼?
更新,因爲我不知道如何添加其他意見 的ApplicationController
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
@pages = Page.all
end
首先,我跳出來的是你正在嘗試渲染來自@ pages.each的輸出,你不應該這樣做。使用'<% %>'作爲該行而不是'<%= %>'。否則,你真的看到了什麼錯誤? – DVG 2012-07-19 16:10:58
謝謝你沒有看到它,NoMethodError,未定義的方法'each'for nil:NilClass,行代碼是<%@ pages.each do | page | %>在_link.html.erb – Jseb 2012-07-19 16:15:39
顯示自你的'ApplicationController' – Chowlett 2012-07-19 16:15:56