我正在尝试用露营制作一个简单的博客,就像野营一样,只是我想用haml来代替markaby.我想使用_post.html.haml部分渲染帖子,但我有一种感觉,我可能会以错误的方式去做.
Blog.rb
require 'camping'
Camping.goes :Blog
Blogtitle = "My Blog"
module Blog
# Path to where you want to store the templates
set :views, File.dirname(__FILE__) + '/views'
module Blog::Models
class Post < Base; belongs_to :user; end
class Comment < Base; belongs_to :user; end
class User < Base; end
end
module Blog::Controllers
class Index
def get
@posts = Post.find :all
render :index
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
意见/ index.html.haml
!!!
%html
%head
%meta{'http-equiv' => 'Content-Type', :content => 'text/html', :charset => 'UTF-8' }/
%title=Blogtitle
%body=render @posts
Run Code Online (Sandbox Code Playgroud)
意见/ _post.html.haml
%h2=post.title
%p=post.html_body
Run Code Online (Sandbox Code Playgroud)
错误
NoMethodError at /
undefined method `to_sym' for #<Array:0xb6e426d4>
Ruby (eval): in lookup, line 12
Web GET 0.0.0.0/
Traceback (innermost first)
(eval): in lookup
(eval): in render
/home/tony/src/blog/views/index.html.haml: in evaluate_source
%body=render @posts
Run Code Online (Sandbox Code Playgroud)
首先,要渲染局部,你必须做这样的事情:
render :_post, :locals => { :post => post }
Run Code Online (Sandbox Code Playgroud)
如果您想呈现所有帖子,只需使用循环:
%body
- @posts.each do |post|
= render :_post, :locals => { :post => post }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
911 次 |
| 最近记录: |