I'm fairly new to RoR, so apologies in advance if I rape the
terminology here...
I am trying to use functionality from one controller in another
controller. Here is the first controller:
class PagesController < ApplicationController
def show
@page = Page.find(params[:id])
end
end
2nd controller
class SiteController < ApplicationController
def some_page
@page = Page.find(:all, :conditions => "name = 'some_page'")
end
end
Ultiamtely, I'm trying to access my "Pages" table from a controller
other than the Pages controller... not sure if I have to extend the
new controller or how the functionality "trickles down" to my new
controller?
The problem is that in your show action, @page is a single record. In
your “about” action, you are using :all in find, which returns an
array. If you just want a single record, change it to :first. If you
want to use the array, do it like this:
<% @pages.each do |page| -%>
<% for column in Page.content_columns %>
<p>
<b><%= column.human_name %>:</b> <%=h page.send(column.name) %>
</p>
<% end %>
<% end -%>