# Displaying "Site Title" from MySQL Throughout Entire Site

**URL:** <https://www.ruby-forum.com/t/displaying-site-title-from-mysql-throughout-entire-site/106693>\
**Category:** Rails\
**Created:** [June 13, 2007, 10:58am UTC](https://www.ruby-forum.com/t/displaying-site-title-from-mysql-throughout-entire-site/106693 "2007-06-13T10:58:01Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 13, 2007, 10:58am UTC](https://www.ruby-forum.com/t/displaying-site-title-from-mysql-throughout-entire-site/106693/1 "2007-06-13T10:58:01Z")

</div>

I’m an absolute noob, so please excuse my ignorance here 🙂

I’m looking for away to display the site’s title that I’ve entered into  
a mysql database.

Assuming I created the table using this:

create table settings (  
id int not null auto\_increment,  
yourname varchar(100) not null default ,  
sitetitle varchar(100) not null default ,  
primary key(id)  
) engine=InnoDB;

How would I fetch that sitetitle to display between the   
tags from the view pages?

---

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 13, 2007, 12:30pm UTC](https://www.ruby-forum.com/t/displaying-site-title-from-mysql-throughout-entire-site/106693/2 "2007-06-13T12:30:39Z")

</div>

In your application controller you could do someting like

before\_filter :get\_site\_title

private  
def get\_site\_title

end

On Jun 13, 9:58 am, Bob S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 13, 2007, 12:35pm UTC](https://www.ruby-forum.com/t/displaying-site-title-from-mysql-throughout-entire-site/106693/3 "2007-06-13T12:35:40Z")

</div>

Oops, sorry google groups decided to post while I was still writing  
(maybe I accidentally hit a key combination to post:(). Anyway…

In your application controller you could do something like

before\_filter :get\_site\_title

private  
def get\_site\_title  
@site\_title = Settings.sitetitle  
end

and in your layout

\<%= @site\_title %\>

This means you are adding an extra db query to every page though.  
Since the site title is not going to change do you really need to  
store it in the database?

Cheers,

AF

---

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 13, 2007, 3:25pm UTC](https://www.ruby-forum.com/t/displaying-site-title-from-mysql-throughout-entire-site/106693/4 "2007-06-13T15:25:44Z")

</div>

Hi Aidan!

Thanks for your help 🙂

I followed your instructions, and I’m running into this error:

================================

NameError in ClientController#index

uninitialized constant ApplicationController::Settings

================================

I incorporated the:

before\_filter :get\_site\_title

private  
def get\_site\_title  
@site\_title = Settings.sitetitle  
end

into the application.rb controller right underneath the “class  
ApplicationController \< ActionController::Base”

Do you know what I might be doing wrong?

---

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 13, 2007, 4:35pm UTC](https://www.ruby-forum.com/t/displaying-site-title-from-mysql-throughout-entire-site/106693/5 "2007-06-13T16:35:22Z")

</div>

On 6/13/07, aidanf [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> @site\_title = Settings.sitetitle  
> end

That’s not going to work. You need something like:

@site\_title = Settings.find(:first).sitetitle rescue “Default Title”

He might want to just get all the settings:

```
@settings = Settings.find(:first) || Settings.new

```

Then in the view:

\<%= h @settings.sitetitle %\>

---

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 13, 2007, 3:29pm UTC](https://www.ruby-forum.com/t/displaying-site-title-from-mysql-throughout-entire-site/106693/6 "2007-06-13T15:29:03Z")

</div>

> This means you are adding an extra db query to every page though.  
> Since the site title is not going to change do you really need to  
> store it in the database?
> 
> Cheers,
> 
> AF

I forgot to answer your question. My apologies!

I’m trying to play around with ROR as much as I can to get a flow of how  
things work, so I thought about incorporating a feature where the user  
can change the site’s title.

---

<div class="post-metadata">

**Author:** ![adistarmid](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/f14d63/32.png) [@adistarmid](https://www.ruby-forum.com/u/adistarmid)\
**Post date:** [June 13, 2007, 11:14pm UTC](https://www.ruby-forum.com/t/displaying-site-title-from-mysql-throughout-entire-site/106693/7 "2007-06-13T23:14:02Z")

</div>

Awesome, Bob! Thank you so much. Thank you, thank you, thank you. You’re  
the greatest! 🙂
