Hi All, I want to shift my Method from Controller to Model, I have a
controller with no Model because there is no table. Now I want to shift my
Method from Controller to Model. The code is here..
//////////Dashboard Controller////////////////////////
class DashboardController < ApplicationController
layout ''standard''
def index
@dashs = Lead.find_by_sql("(SELECT
opportunities.created_on,opportunities.created_by,opportunities.position_title
FROM opportunities) UNION DISTINCT
(SELECT
customers.created_on,customers.created_by,customers.company_name FROM
customers) UNION DISTINCT
(SELECT
leads.created_on,leads.created_by,leads.first_name FROM leads)
ORDER BY created_on DESC")
@dashboards = @dashs.paginate :per_page => 3,:page => params[:page]
end
end
Now I want to make a Model for Dashboard and shift my queries from
Controller to Model.
Thanks & Regards,
Shahroon
--~--~---------~--~----~------------~-------~--~----~
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Hi Shahroon
It looks like you are creating a resource for leads, and that you want to
display these leads in the dashboard for your application.
What you can do is create a controller for leads. Then you have a resource
=> :leads.
In your routes file you can map the route of your application to the
leads_controller.
map.root :controller => ''leads'', :action =>
''index''
You can also add a named route like so
map.dashboard ''/dashboard'', controller =>
''leads'', :action => ''index''
This will still allow you to use dashboard_path.
If you want to move the query to your Lead model you can do it like this:
in the controller
@dashs = Lead.some_method_name
And then in the lead model
def self.some_method_name
.find_by_sql("(SELECT
opportunities.created_on,opportunities.created_by,opportunities.position_title
FROM opportunities) UNION DISTINCT
(SELECT customers.created_on,customers.created_by,customers.company_name
FROM customers) UNION DISTINCT
(SELECT
leads.created_on,leads.created_by,leads.first_name FROM leads)
ORDER BY created_on DESC")
end
or
class << self
def some_method_name
find_by_sql("(SELECT
opportunities.created_on,opportunities.created_by,opportunities.position_title
FROM opportunities) UNION DISTINCT
(SELECT customers.created_on,customers.created_by,customers.company_name
FROM customers) UNION DISTINCT
(SELECT
leads.created_on,leads.created_by,leads.first_name FROM leads)
ORDER BY created_on DESC")
end
end
Regards
Ivor
On Wed, Dec 24, 2008 at 12:10 PM, shahroon ali
<shahroon.ali-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>wrote:
> Hi All, I want to shift my Method from Controller to Model, I have
> a controller with no Model because there is no table. Now I want to shift
my
> Method from Controller to Model. The code is here..
> //////////Dashboard Controller////////////////////////
> class DashboardController < ApplicationController
> layout ''standard''
> def index
> @dashs = Lead.find_by_sql("(SELECT
>
opportunities.created_on,opportunities.created_by,opportunities.position_title
> FROM opportunities) UNION DISTINCT
> (SELECT
> customers.created_on,customers.created_by,customers.company_name FROM
> customers) UNION DISTINCT
> (SELECT
> leads.created_on,leads.created_by,leads.first_name FROM leads)
> ORDER BY created_on DESC")
>
> @dashboards = @dashs.paginate :per_page => 3,:page =>
params[:page]
>
> end
>
> end
>
> Now I want to make a Model for Dashboard and shift my queries from
> Controller to Model.
>
> Thanks & Regards,
> Shahroon
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---
Thanks a lot Ivor,
Well this works and in fact I wanna know why I
need mapping in route file cuz I got the results without routing it , look
what i did
1> I placed my method in Leads Model with query
2> Then I called it in my dashboard controller
and it worked, now I am facing problem with its pagintion look at the lines
given below
def self.display_data
@dashs = Lead.find_by_sql("(SELECT
opportunities.created_on,opportunities.created_by,opportunities.position_title
FROM opportunities) UNION DISTINCT(SELECT
customers.created_on,customers.created_by,customers.company_name FROM
customers) UNION DISTINCT (SELECT
leads.created_on,leads.created_by,leads.first_name FROM leads)
ORDER BY created_on DESC")
@dashs.paginate :per_page => 3,:page => params[:page]
end
when i apply this, I get this error
undefined local variable or method `params''
but when I removed the last line then it gives me the records but
without pagination of course
just because the pagination method is removed, so could you help me
regarding this issue.
Thanks again,
Shahroon
On Wed, Dec 24, 2008 at 8:02 PM, Ivor Paul
<ivorpaul-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
> Hi Shahroon
>
> It looks like you are creating a resource for leads, and that you want to
> display these leads in the dashboard for your application.
>
> What you can do is create a controller for leads. Then you have a resource
> => :leads.
>
> In your routes file you can map the route of your application to the
> leads_controller.
>
> map.root :controller => ''leads'', :action =>
''index''
>
> You can also add a named route like so
>
> map.dashboard ''/dashboard'', controller =>
''leads'', :action => ''index''
>
> This will still allow you to use dashboard_path.
>
> If you want to move the query to your Lead model you can do it like this:
>
> in the controller
>
> @dashs = Lead.some_method_name
>
> And then in the lead model
>
> def self.some_method_name
> .find_by_sql("(SELECT
>
opportunities.created_on,opportunities.created_by,opportunities.position_title
> FROM opportunities) UNION DISTINCT
> (SELECT customers.created_on,customers.created_by,customers.company_name
> FROM customers) UNION DISTINCT
> (SELECT
> leads.created_on,leads.created_by,leads.first_name FROM leads)
> ORDER BY created_on DESC")
>
> end
>
> or
>
> class << self
> def some_method_name
> find_by_sql("(SELECT
>
opportunities.created_on,opportunities.created_by,opportunities.position_title
> FROM opportunities) UNION DISTINCT
> (SELECT customers.created_on,customers.created_by,customers.company_name
> FROM customers) UNION DISTINCT
> (SELECT
> leads.created_on,leads.created_by,leads.first_name FROM leads)
> ORDER BY created_on DESC")
>
> end
> end
>
> Regards
> Ivor
>
>
> On Wed, Dec 24, 2008 at 12:10 PM, shahroon ali
<shahroon.ali-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>wrote:
>
>> Hi All, I want to shift my Method from Controller to Model, I
>> have a controller with no Model because there is no table. Now I want
to
>> shift my Method from Controller to Model. The code is here..
>> //////////Dashboard Controller////////////////////////
>> class DashboardController < ApplicationController
>> layout ''standard''
>> def index
>> @dashs = Lead.find_by_sql("(SELECT
>>
opportunities.created_on,opportunities.created_by,opportunities.position_title
>> FROM opportunities) UNION DISTINCT
>> (SELECT
>> customers.created_on,customers.created_by,customers.company_name FROM
>> customers) UNION DISTINCT
>> (SELECT
>> leads.created_on,leads.created_by,leads.first_name FROM leads)
>> ORDER BY created_on DESC")
>>
>> @dashboards = @dashs.paginate :per_page => 3,:page =>
params[:page]
>>
>> end
>>
>> end
>>
>> Now I want to make a Model for Dashboard and shift my queries from
>> Controller to Model.
>>
>> Thanks & Regards,
>> Shahroon
>>
>>
>>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---