SinatraとDataMapperでブログアプリケーションを作成したいのですが、私の主なアプリケーションファイルはこのようなものです。SinatraとDataMapper Association
%w[rubygems sinatra data_mapper].each{ |r| require r }
DataMapper.setup(:default , ENV['DATABASE_URL'] || "sqlite3://#{Dir.pwd}/development.db")
class Post
include DataMapper::Resource
property :id, Serial
property :title, String
property :author, String
property :body, Text
has n, :comments
end
class Comment
include DataMapper::Resource
property :id, Serial
property :post_id, Serial
property :name, String
property :body, Text
belongs_to :post
end
helpers do
def admin?
request.cookies[settings.username] == settings.token
end
def protected!
halt [401, 'Not Authorized'] unless admin?
end
end
post '/comment/create' do
comment = Comment.new(:name => params[:name], :body => params[:body])
if comment.save
status 201
redirect '/post/'+post.id.to_s
else
status 412
redirect '/'
end
end
get '/post/:id' do
@post = Post.get(params[:id])
@comments = Comment.new
erb :post
end
delete '/comment/:id' do
Post.get(params[:id]).Comment.(params[:id]).destroy
redirect '/post/'+post.id.to_s
end
DataMapper.auto_upgrade!
さて、私の問題は、作成、削除、コメントを表示するには、ポストショーファイルのコメント のインスタンス変数を設定する方法です。
いずれの提案や解決策も歓迎されます。
お望みのものについてもう少し明確にしてください。 –
基本的には、ブログのように私のアプリでは基本的な投稿をコメントの関係にしたい。 – BimoZX
あなたはすでにそれを持っているように私に見えます。投稿とコメントの間には1対1の関係があります。それ以外に何がありますか? –