On 9 Dec, 22:56, Rodrigo Dellacqua <[email protected]> wrote: > On Wed, Dec 9, 2009 at 5:46 PM, RubyonRails_newbie < > > > > > > [email protected]> wrote: > > > On 9 Dec, 20:39, RubyonRails_newbie <[email protected]> > > wrote: > > > On 9 Dec, 16:43, Colin Law <[email protected]> wrote: > > > > > 2009/12/9 RubyonRails_newbie <[email protected]>: > > > > > > I'll need to take another look at it. I dont think it's there, > > > > > > Would it look like select * from posts where active_post = 1? > > > > > If it is using the code in fetchFirstPostForSessionUser that you > > > > posted earlier, ie > > > > Post.find_by_user_id( session[:user_id], 1, :limit => 1, :conditions > > > > => "active_post = 1", :order => "created_at desc") > > > > > Then it should have all of that in it - the user id the conditions, > > > > the order and the limit. > > > > > If your log is getting large you can just delete it and then run the > > > > query to make it easier to find the bits of interest. > > > > > Colin > > > > > By the way I do wish you would stop top posting, it makes it much > > > > harder to follow what you are replying to. > > > > Sorry about that - it this better? > > > > From my log file I have this: > > > > UPDATE `posts` SET `updated_at` = '2009-12-09 20:24:55', `active_post` > > > = 0 WHERE `id` = 176 > > > > That looks correct in my opinion, and what I know about SQL. > > > > So - I think the problem is with the view. > > > > If the query is working correctly, then all i need to do is correctly > > > show a post (if it is active only) > > > > So I wrote this: > > > <% if @posts.active_post == 1 %> > > > <%= render :partial => @posts %> > > > <% end %> > > > > This doesn't return a post - even though the database shows 1 active > > > post. (active_post = 1) > > > > Debugging - I'm new to rails and find this hard enough to follow. I've > > > not learnt anything about debugging so wouldn't know where to start. I > > > think the issue is the view, but what do you think? > > > > CHeers > > > Hi Colin, > > > You'll be pleased (relieved) to know I seem to have resoled it. > > > It was the view after all! I changed : > > > <% if @posts.active_post == 1 %> > > > <%= render :partial => @posts %> > > > TO: > > <% if @posts.active_post? %> > > <%= render :partial => @posts %> > > > This now only renders a post when it is active. > > When I delete the post, the view displays no posts. Voila. :-) > > > Thanks so much for the posts on this. Perseverance prevailed!!! > > > Regards > > > -- > > ____________ > Rodrigo Dellacqua wrotes: > > Craig, > > As I mentioned before, you shoudn't put that kind of behaviour in your > views. > > That's a bad design and will lead to maintenance problems in the future. > > What you should do is apply a ViewModel pattern to that, making this model > make the needed changes to your objects and them this ViewModel would be > passed in to the view. > > But you shoudn't really send all posts to the view and filters on there, you > should only retrieve what you are going to use, if you keep that way, you > are creating a non-scalable app. > > []'s > Rodrigo Dellacqua- Hide quoted text - > > - Show quoted text -
Hi All, Although it may be bad design - i'm going to keep it as it is for the first roll out of my app, and make changes once i've found my feet with rails. I need help with the following if statement: > > <% if @posts.active_post? %> > > <%= render :partial => @posts %> This works perfectly if a user has a post. However, If i create a new user (they have no posts) When the user page is then loaded, I get an error regarding the active_post. Obviously as the user is new, and has not posted anything, they now get an error. How can i refine the statement to allow the page to render, even in the case of a new user? Cheers -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

