Je veux faire une application de blog dans Sinatra et DataMapper, mon fichier d'application principal est comme ça.Sinatra et 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!
Maintenant, mon problème est de savoir comment mettre en place la variable d'instance de commentaires dans le poste fichier show, faire, supprimer et afficher les commentaires.
Toute suggestion et solution seraient les bienvenues.
Pourriez-vous nous donner un peu plus de précisions sur ce que vous voulez, s'il vous plaît? –
Fondamentalement, je veux un poste de base pour commenter relation dans mon application, tout comme un blog. – BimoZX
Il me semble que vous l'avez déjà. Vous avez la relation un à plusieurs entre Post et Comment définie ici. Quoi d'autre est-ce que vous êtes après? –