与我的上一个问题类似。我已按照本指南访问了我的第一个rails应用程序。 http://guides.rubyonrails.org/getting_started.htmlccap
我在布局视图中制作了一个布局,我想在侧面栏中列出所有文章。我做了一部分,其中包括文章标题循环和链接。
出于某种原因,它似乎只适用于文章页面......所以http://localhost:3000/articles
我认为那是因为我没有在我的控制器中为它创建def?我不知道如何创建它虽然是部分。
我的理解是我可以像
那样def index
@articles = article.all
end
但是因为它是_sidebar.html.erb的一部分,我不知道该怎么做。
非常感谢任何帮助!
答案 0 :(得分:0)
假设您正在从布局中渲染侧边栏。实现此目的的最佳方法是在before_action
ApplicationController
过滤器
你应该得到像这样的东西
class ApplicationController < ActionController::Base
protect_from_forgery with: :excption
before_action :fetch_articles
protected
def fetch_articles
@articles = Article.limit(10) # Gets 10 articles
end
end
这将在您的rails应用中的每个操作之前运行fetch_articles
方法。
这意味着只要呈现新动作,@articles
变量就可用于侧边栏部分。
答案 1 :(得分:0)
您应该将代码放在
中module ApplicationHelper
include Radio::AttributeBuilder
def fetch_articles
@articles = Article.limit(10) # Gets 10 articles
end
end
并在你的助手
中为节目调用此方法