2012-02-13 12 views
1

私はdevelopment.sqlite3というデータベースを持っていて、それは自分のconfig.rbと同じディレクトリにあります。Middleman Dynamic Pagesの問題

私は、次の中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ちょうどそれに次のようにあります。私はmiddleman buildを実行すると、私はエラーを取得していない= @slug_url

、正常に動作するようですが、それはキロワットのディレクトリを作成しませんかそれが必要なファイルのいずれか。私がここで間違っていることに関するアイデアは何ですか?

+0

少なくとも、ディレクトリを作成する必要があります。 –

+0

私は.hamlを.htmlに変更しました。これはビルドフォルダに私用のディレクトリを作成します。明らかに、ソースフォルダに既に作成されています。そこにはtemplate.htmlファイルが置かれていますが、url-slug-something.htmlのようなファイルはありません。 –

答えて

2

最初に、 "ページ"は現在のバージョン(3.0ベータ版の両方の形式をサポート)でテンプレートパスではなく出力パスをとります。あなたがデータを扱うための/source/kw/template.html.hamlファイルを持っている

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

だからあなたのような何かをしたいと思います。

+0

プロキシは何をしますか?これを実行すると、基本的に空のテンプレートであるbuild/kw /ディレクトリにtemplate.htmlファイルが作成されます。私には、それは仲介者の問題ではないように見える。同意しますか? –

+2

':ignore => true'を追加すると、必要ない場合にはtemplate.htmlの出力を避けることができます。 –