Ruby on Rails Friday, November 26, 2010

2010/11/26 Eduardo Yáñez Parareda <eduardo.yanez@gmail.com>:
> Well, I'm not a newbie developer....

OK, we were not to know that of course.

>
> The from clause is:
>
> from
>               users u, users ug, members m, projects p,
>               issues i, time_entries t,
>               issue_categories ic, groups_users g, category_attrs att
>               left join enumerations ptype on ptype.id =
> att.project_type_id
>               left join enumerations rtype on rtype.id =
> att.request_type_id
>
> I prefer to have a model for my results, I think it'll be enhanced
> with more attibutes when I progress in the development.

Is there not an issue then that there will be multiple ways of
accessing overlapping attributes? I suppose if it is read only that
may be less of an issue. You might end up having to replicate
business logic though.

Colin

>
> On 26 nov, 13:00, Colin Law <clan...@googlemail.com> wrote:
>> 2010/11/26 Eduardo Yáñez Parareda <eduardo.ya...@gmail.com>:
>>
>> > Hello,
>>
>> > I have custom queries that joins several tables, so I have written a
>> > model class to represent those data. I have extended it from
>> > ActiveRecord::Base in order to be able to use 'find_by_sql'. When I
>> > call 'find_by_sql' it seems to work fine, in the debugger I can see
>> > every record retrieved from DB with their values, but when I try to
>> > access those values through some accessors, they don't give me
>> > anything.
>>
>> Are you absolutely sure you cannot do it using normal rails
>> relationships and avoid find_by_sql?
>>
>> Colin
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> > This is my class:
>>
>> > class ProjectsReport < ActiveRecord::Base
>>
>> > attr_accessor :total_hours, :group_name, :project_type, :request_type
>>
>> >  def initialize(total_hours, group_name, project_type, request_type)
>> >    @total_hours = total_hours
>> >    @group_name = group_name
>> >    @project_type = project_type
>> >    @request_type = request_type
>> >  end
>> > end
>>
>> > If I use another class that has a table associated to call
>> > find_by_sql, everything works fine, but that isn't a good design.
>>
>> > # This doesn't work because ProjectsReport doesn't have any table on
>> > DB?
>> >    @records =
>> > ProjectsReport.find_by_sql(create_projects_report_query(start_date,
>> > end_date))
>>
>> > # This works but TimeEntry doesn't have anything related with
>> > information retrieved by the query
>> >    @records =
>> > TimeEntry.find_by_sql(create_projects_report_query(start_date,
>> > end_date))
>>
>> > What must I add to ProjectsReport to get it working?
>>
>> > --
>> > 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 rubyonrails-talk@googlegroups.com.
>> > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
>> > For more options, visit this group athttp://groups.google.com/group/rubyonrails-talk?hl=en.
>
> --
> 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 rubyonrails-talk@googlegroups.com.
> To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>

--
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 rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment