Trudne początki i pierwsza przeszkoda

Witam,
choć moja przygoda z RoR nie trwa kilka dni :wink: to nadal jest dla mnie to trochę mało zrozumiały framework ogólną zasadę czaję w ale jakoś ciężko mi się przesiąść z PHP.
Mój problem polega na tym mam dwa modele post i comment relacja has_many i belong_to jak był tylko model post wszystko działało idealnie po dodaniu drugiego modelu i relacji między nimi nic nie działa i otrzymuję błąd uninitialized constant Post::Comment chciał bym rozwiązać swój problem sam i może podpowiecie jakiś tutorial a najlepiej video gdzie pokazane jest jak używać relacji między dwoma modelami zaznaczę tylko że http://apohllo.pl/ jest mi znane :wink:

Pozdrawiam
Piotr

bez kawałków kodu możesz liczyć jedynie na zgadywanki.
W dziale zielona szkoła (gdzie napisałeś) jest podpięty temat jak zacząć przygodę z RoR - polecam :wink:

Rozumiem, że przeskanowałeś moją stronę od A do Z :wink: Być może przeoczyłeś jednak tę strone. Ostatni wykład zamieściłem dzisiaj :smiley:

Ok to wrzucam kodzik
Controller Posts

[code]class PostsController < ApplicationController
def index
@posts = Post.all
end

def show
@post = Post.find(params[:id])
@comment = @post.comments.build
end

def new
@post = Post.new
end

def create
@post = Post.new(params[:post])

if @post.save
  redirect_to posts_path, :notice => "Post was saved"
else
  render "new"
end

end

def edit
@post = Post.find(params[:id])
end

def update
@post = Post.find(params[:id])

 if @post.update_attributes(params[:post])
    redirect_to posts_path, :notice => "Post was updated"
 else
   render "edit"
 end

end

def destroy
@post = Post.find(params[:id])
@post.destroy
redirect_to posts_path, :notice => "Post has been deleted "
end
end[/code]
Controller comments

[code]class CommentsController < ApplicationController

def index
@post = Post.find(params[:post_id])
@comments = @post.comments
end

def show
@post = Post.find(params[:post_id])
@comment = @post.comments.find(params[:id])
end

def new
@post = Post.find(params[:post_id])
@comment = @post.comments.build
end

def create
@post = Post.find(params[:post_id])
@comment = @post.comments.build(params[:comment])
if @comment.save
redirect_to post_comment_url(@post, @comment)
else
render :action => “new”
end
end

def edit
@post = Post.find(params[:post_id])
@comment = @post.comments.find(params[:id])
end

def update
@post = Post.find(params[:post_id])
@comment = Comment.find(params[:id])
if @comment.update_attributes(params[:comment])
redirect_to post_comment_url(@post, @comment)
else
render :action => “edit”
end
end

def destroy
@post = Post.find(params[:post_id])
@comment = Comment.find(params[:id])
@comment.destroy
redirect_to post_comments_path(@post)
end

end[/code]
oraz widok post#show

[code]

<%= @post.title%>

<%= @post.content %>

<%= @post.created_at %>

Comments

<% @post.comments.each do |c| %>

Commenter: <%=h c.commenter %>

<p>
  <b>Comment:</b>
  <%=h c.content %>
</p>

<% end %>

<%= link_to ‘Edit Post’, edit_post_path(@post) %> |
<%= link_to ‘Back to Posts’, posts_path %>
<%= link_to ‘Manage Comments’, post_comments_path(@post) %>[/code]
błąd jaki otrzymuję uninitialized constant Post::Comment
kompletnie nie czaje jak zaimplementować i używać relacji ;(

Pozdrawiam

Relacje ustawiasz w modelu app/models/

W post powinienes miec has_many :comments a w comment belongs_to :post

do tego musisz miec pole w bazie by to polaczyc “fizycznie” czyli w tabeli comment musisz miec post_id i tyle

[quote=ostryhood]błąd jaki otrzymuję uninitialized constant Post::Comment
kompletnie nie czaje jak zaimplementować i używać relacji ;([/quote]
http://apohllo.pl/texts/6_wyklad_model.pdf http://guides.rubyonrails.org/association_basics.html

dobra implementacja już mi znana zrozumienie również używanie trochę średnio idzie ale kilka programików i będzie ok.

Problem polegał na tym że model był Coment a raeszta comment :wink: jedna literka i cały wieczór zepsuty.

Aphollo dzięki za lekturę dość ciekawe wykłady ale mało przykładów :wink:

Przykłady robię na ćwiczeniach - na stronie są też linki do prezentacji z laboratoriów. Oczywiście też tego nie jest b. dużo - przygotowanie jednego wykładu to ok 8 godzin roboty.