I hope this is not considered spam but I found a much cleaner way to pull BELONGS_TO data rather than including the model.
If a model belongs to something such as my submissions model belonging to genre then a column is added to the table called model_id or in my case genre_id. I can then just use this very simple find statement @prose = Submission.find(:all, :conditions => ["genre_id = ?", 1]) My hope this information will be helpful to those who get confused where I did. Still working on the condition where I don't pull submissions which already have comments made by the user who's account page is currently being accessed. I will post my solution for that when I find it as well. On Tue, Nov 10, 2009 at 12:08 AM, christian <[email protected]> wrote: > I combined the two using this; > > @prose = Submission.find(:all, :include => [:comments, :genre], :conditions > => ["genres.name = ? and comments.owner_id != ?", "Prose", > "@user.comments"]) > > Still cant get the right record pull for comparing the comments - I get the > inverse of what I am looking for. I just figured I would answer these > questions that I had in case anyone else runs into these problems in the > future and needs a hint. > > On Mon, Nov 9, 2009 at 11:48 PM, christian <[email protected]> wrote: > >> "Now I just need to make sure they haven't posted a comment yet" - me >> >> I was able to accomplish the inverse of this with: >> >> @prose = Submission.find(:all, :include => :comments, :conditions => >> ["comments.owner_id != ?", "@user.comments") >> >> Is there any way to have two included models and more conditionals on a >> single find or should I just do another find with the product of the first >> find like: >> >> >> @prose = Submission.find(:all, :include => :genre, :conditions => [" >> genres.name = ?", "Prose"] >> @proseacc = @porse.find(:all, :include => :comments, :conditions => >> ["comments.owner_id != ?", "@user.comments") >> >> >> >> >> On Mon, Nov 9, 2009 at 11:30 PM, christian <[email protected]> wrote: >> >>> This works for my purpose! >>> >>> @prose = Submission.find(:all, :include => :genre, :conditions => [" >>> genres.name = ?", "Prose"] >>> >>> Now I just need to make sure they haven't posted a comment yet. Thank you >>> guys for all your assistance! >>> >>> >>> On Mon, Nov 9, 2009 at 11:23 PM, christian <[email protected]> wrote: >>> >>>> Alright I hope I am posting the relevant information. >>>> >>>> Here is from my genre.rb (genre model file) >>>> *"class Genre < ActiveRecord::Base >>>> >>>> hobo_model # Don't put anything above this >>>> >>>> fields do >>>> name :string >>>> timestamps >>>> end >>>> >>>> has_many :submissions, :dependent => :destroy >>>> has_many :users, :dependent => :destroy"* >>>> >>>> Since I intend to sort by submissions I will post the submissions.rb >>>> next. >>>> >>>> *"class Submission < ActiveRecord::Base >>>> >>>> hobo_model # Don't put anything above this >>>> >>>> fields do >>>> title :string >>>> body :text >>>> status :string, :default => false >>>> timestamps >>>> end >>>> >>>> belongs_to :issue >>>> belongs_to :genre"* >>>> >>>> Then I am trying to pull these submissions with the that belong to the >>>> genre prose on the user page for prose editors. I have already successfully >>>> set it up so that prose editors see only the table I am working on so now >>>> it >>>> is just a matter of trying to make it so they only see relevant >>>> submissions. >>>> >>>> >>>> So here is my user_controller.rb >>>> * >>>> "class UsersController < ApplicationController >>>> >>>> hobo_user_controller >>>> >>>> auto_actions :all, :except => [ :new, :create ] >>>> >>>> def account >>>> >>>> @prose = Submission.find(:all, :include => :genre, :conditions >>>> => [ genre.name == '1' ]) >>>> hobo_show >>>> >>>> end"* >>>> >>>> Then this data will be displayed in account.dryml >>>> * >>>> "<if test="&logged_in? && current_user.editor? && @user.editor?"> >>>> >>>> <h3>Pending Review</h3> >>>> <br /> >>>> >>>> >>>> <table-plus with="&@prose" fields="issue, this, owner, genre, >>>> comments.count, judgements, created_at"> >>>> >>>> <created-at-view:><view format="%d %B >>>> %Y"/></created-at-view:> >>>> <controls:>Report</controls:> >>>> </table-plus> >>>> >>>> >>>> </if>*" >>>> >>>> I hope this better explains what I am trying to accomplish. I feel if I >>>> can pull data and run conditions from other related models against it that >>>> I >>>> will have a much better grasp of how to deal with data using dryml/hobo. If >>>> you are curious I am trying to build my friend a submission manager for a >>>> literary magazine and teach myself hobo in the process. >>>> >>>> Thanks again for your time and patience. >>>> >>>> >>>> On Mon, Nov 9, 2009 at 11:11 PM, Matt Jones <[email protected]> wrote: >>>> >>>>> >>>>> >>>>> On Nov 9, 2009, at 5:45 PM, christian wrote: >>>>> >>>>> > Genre in my case is a seperate model which both user and submissions >>>>> > has many and I want to sort by submissions genre. >>>>> > >>>>> > Genre has many submissions and users. Submissions belong to genre. >>>>> > >>>>> > So for this example would it be? >>>>> > >>>>> > class Submission >>>>> > named_scope :prose, :include => :genre, :conditions => >>>>> > { :submissions => >>>>> > { :genre => 'Prose' } } >>>>> > end >>>>> > >>>>> >>>>> That's not going to work - my examples assumed (since you were >>>>> referencing users.genre) that genre was a field (likely an >>>>> enum_string) that was defined on User. >>>>> >>>>> Can you post the relevant parts of your models, either here or in a >>>>> gist? >>>>> >>>>> > Thank you. I feel I already understand the process much better and I >>>>> > have been reading the linked tutorials which I am catching things >>>>> > that didn't quite make sense before. >>>>> >>>>> :) As rough as things sometimes are now, just imagine what it was like >>>>> back in the old 0.6 era; most of the documentation back then was "read >>>>> the source". Big thanks to everybody that's contributed recipes, docs, >>>>> or even just come on the list and said, "X doesn't make sense...". >>>>> >>>>> --Matt Jones >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>> >> > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Hobo Users" 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/hobousers?hl=en -~----------~----~----~----~------~----~------~--~---
