2010-08-20 3 views
0

У меня есть модель Билет, на которую has n Комментарии к ней (отношение к отношениям).Datamapper, Sinatra, Haml: установка и рендеринг Комментарии к сообщению

Проблема заключается в том, что я не могу представить ни один из комментариев, а также не заполнять форму в комментариях к базе данных.

Я могу как-то соделать это с irb. Я могу добавлять комментарии к сайтам ticket.com, но я не могу тянуть отдельные комментарии - я могу подтянуть коллекцию, но не понял, как с ней что-то сделать. Это класс: DataMapper :: Ассоциации :: OneToMany :: Сбор и документация говорит: «Собрание должно действовать как массив во всех отношениях»

Так 2 вопросы, требующие чтения и ввода:

1) проводки от веб-форму 2) итерирование и рендеринг коллекции через haml, что я не могу сделать.

Более окровавленные детали:

У меня есть метод Синатры, который вытягивает вверх шаблон

get '/:thisticket' do 
    @ticket=Ticket.first(:slug=>params[:slug]) 
    if @ticket 
     haml :showticket 

Haml

%div{:class => "ticket"} 
%h1 
    = @ticket.slug 

= @ticket.comments.all    (returns the # symbol to any html page) 

- @ticket.comments.all do |comment| 
%h4 
    = comment.a_comment 
%h4 
    = comment.created_at 
%h4 
    = comment.id      (this block shows nothing on a rendered page) 

%center 
%form{:action => "/#{@thisticket.slug}/update", :enctype => "text/plain", :method => "post"} 
comments 
%br/ 
%textarea{:id => "a_comment",:name => "a_comment", :rows => "5"} 
:preserve 
%br/ 
%input{:type => "submit", :value => "post"}/ 
+0

На этом этапе я понимаю, что метод может быть не тем, что мне нужно делать, но изначально он был методом apt. – none

ответ

1

Для тех, кто обращают внимание или имеющие один и тот же:

Этот работы

Синатра

get '/:thisticket' do 
    @ticket=Ticket.first(:thisticket=>params[:thisticket]) 
    @[email protected](:order => [ :created_at.desc ]) 
    if @ticket 
     haml :showticket 

Haml

@comments.each do |comment| 
comment.comment 

т.д., и т.д., и др. и др.

Смежные вопросы