Change this line: @discussions = @user.discussion.paginate(page: params[:page]) for @discussions = @user.discussion*s*.paginate(page: params[:page])
El viernes, 21 de junio de 2013 14:17:31 UTC-5, [email protected] escribió: > Hi everybody! > I'm currently in the process of writing my first ruby on rails app. I'm > quite new to the whole thing and I could use some help with an issue i've > been stuck on for a while. > > The goal here is to crease a discussion board where users can comment with > microposts. Very simple. The issue is that I am getting the error > NameError in Discussions#index > > undefined local variable or method `discussion' for > #<#<Class:0x00000103eb4e08>:0x00000103e78bb0> > > I'm sure the fix is quite simple. Here's the relevant code > > discussion controller > > class DiscussionsController < ApplicationController > > before_filter :signed_in_user, only: [:index, :edit, :update] > > > > > def show > > @user = User.find(params[:id]) > > @discussions = @user.discussion.paginate(page: params[:page]) > > @microposts = @user.micropost.paginate(page: params[:page]) > > > end > > > def index > > @discussions = Discussion.all > > end > > > def create > > @discussion = current_user.discussions.build(params[:discussion]) > > if @discussion.save > > flash[:success] = "Discussion Started!" > > redirect_to root_url > > else > > render 'static_pages/home' > > end > > end > > > def destroy > > end > > > def edit > > end > > > def update > > end > > > def new > > end > > end > > > micropost controller > > class MicropostsController < ApplicationController > > before_filter :signed_in_user, only: [:create, :destroy] > > > def index > > end > > > def create > > @discussion = current_user.discussions.new > > @micropost = current_user.microposts.build(params[:micropost]) > > if @micropost.save > > flash[:success] = "Posted!" > > redirect_to root_url > > else > > render 'static_pages/home' > > end > > end > > > def destroy > > end > > end > > > discussion board > > <% content_for :script do %> > > <%= javascript_include_tag 'hover_content' %> > > <% end %> > > > > > <li> > > <div class = "intro-bar"><span class = "intro"><%=discussion.intro > %></span></div> > > <div class = "content-bar"> > > <span class = "content"><%= discussion.content %></span> > > <div class = "buttons"> > > <div class = "vote-neg"><%= link_to "Break Up", signup_path,class: > "btn btn-large btn-breakup" %></div> > > <div class = "vote-plus"><%= link_to "Stay Together", > signup_path,class: "btn btn-large btn-staytogether" %></div> > > </div> > > </div> > > </li> > > > <span class = "timestamp"> > > Posted <%= time_ago_in_words(discussion.created_at) %> ago. > > </span> > > > <div class = "comments"> > > <% discussion.microposts.each do |micropost|%> > > <li> > > <div class = "post-comment"><%= micropost.content%></div> > > </li> > > <% end %> > > </div> > > > <% if signed_in? %> > > <div class = "row"> > > <aside class = "span4"> > > <section> > > <%= render 'shared/micropost_form', :locals => {:discussion => > discussion }%> > > </section> > > </aside> > > </div> > > <% end %> > > micropost form partial > <% @micropost = Micropost.new %> > <% @micropost.discussion_id = discussion.id %> > > > <%= form_for(@micropost) do |f| %> > <%= render 'shared/error_messages', object: f.object %> > <div class="field"> > <%= f.text_area :content, placeholder: "Compose new micropost..." %> > </div> > <%= f.hidden_field :discussion_id, discussion.id%> > > <%= f.submit "Post", class: "btn btn-large btn-primary" %> > <% end %> > > > > > thanks! > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/3bb124eb-f280-4686-b079-741057743a9e%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.

