1

したがって、development.sqlite3 というデータベースがあり、config.rb と同じディレクトリにあります。

IRB に移動して次のように入力すると:

require 'data_mapper'
DataMapper.setup :default, "sqlite://#{Dir.pwd}/development.sqlite3"

class Post
      include DataMapper::Resource
      property :title,      String
      property :slug_url,   String, :key => true
      property :desc,       String
      property :content,    Text
      property :project,    String
      property :target_url, Text
      property :trackback,  Integer
      property :updated_at, String
      property :created_at, DateTime  # A DateTime, for any date you might like.
end


DataMapper.finalize
DataMapper.auto_upgrade!
posts = Post.all 
puts post.slug_url

そして、これは私が期待するようにすべての slug_urls を追い出します。config.rb ファイルの先頭にあるものを次に示します。

require 'data_mapper'
require 'builder'
require 'maruku'

DataMapper.setup :default, "sqlite://#{Dir.pwd}/development.sqlite3"

class Post
  include DataMapper::Resource
  property :title,      String
  property :slug_url,   String, :key => true
  property :desc,       String
  property :content,    Text
  property :project,    String
  property :target_url, Text
  property :trackback,  Integer
  property :updated_at, String
  property :created_at, DateTime  # A DateTime, for any date you might like.
end

DataMapper.finalize
DataMapper.auto_upgrade!

posts = Post.all 

posts.each do |post|
  page "/kw/#{post.slug_url}.haml", :proxy => "/kw/template.haml" do
    @slug_url = post.slug_url
  end
end

私のtemplate.hamlには次のものが含まれています:= @slug_url

実行するmiddleman buildとエラーは発生せず、正常に動作しているように見えますが、kw ディレクトリまたは必要なファイルが作成されません。ここで私が間違っていることについてのアイデアはありますか?

4

1 に答える 1

2

まず、「ページ」は、現在のバージョンのテンプレートパスではなく、出力パスを取ります(3.0ベータ版は両方の形式をサポートします)。

したがって、次のようなことをしたいと思うでしょう。

page "/kw/#{post.slug_url}.html", :proxy => "/kw/template.html" do
  @slug_url = post.slug_url
end

/source/kw/template.html.hamlデータを処理するためのファイルがある場合。

于 2012-02-14T05:21:17.573 に答える