I am storing customer-specific partials on S3. When I render the value of the S3 object, it renders as text. How can I render it so that it appears within my main layout?
rename_column :table, :old_column, :new_column
You'll probably want to create a separate migration to do this. (Rename
FixColumnName as you will.):
script/generate migration FixColumnName # creates db/migrate/xxxxxxxxxx_fix_column_name.rb
Then edit the migration to do your will:
# db/migrate/xxxxxxxxxx_fix_column_name.rb class FixColumnName < ActiveRecord::Migration def self.up rename_column :table_name, :old_column, :new_column end def self.down # rename back if you need or do something else or do nothing end end
For Rails 3.1 use:
down methods still apply, Rails 3.1 receives a
change method that "knows how to migrate your database and reverse it when the migration is rolled back without the need to write a separate down method".
See "Active Record Migrations" for more information.
rails g migration FixColumnName class FixColumnName < ActiveRecord::Migration def change rename_column :table_name, :old_column, :new_column end end
If you happen to have a whole bunch of columns to rename, or something that would have required repeating the table name over and over again:
rename_column :table_name, :old_column1, :new_column1 rename_column :table_name, :old_column2, :new_column2 ...
You could use
change_table to keep things a little neater:
class FixColumnNames < ActiveRecord::Migration def change change_table :table_name do |t| t.rename :old_column1, :new_column1 t.rename :old_column2, :new_column2 ... end end end
db:migrate as usual or however you go about your business.
For Rails 4:
While creating a
Migration for renaming a column, Rails 4 generates a
change method instead of
down as mentioned in the above section. The generated
change method is:
$ > rails g migration ChangeColumnName
which will create a migration file similar to:
class ChangeColumnName < ActiveRecord::Migration def change rename_column :table_name, :old_column, :new_column end end
Create your partial view something like:
@model YourModelType <div> <!-- HTML to render your object --> </div>
Then in your view use:
If you do not want a strongly typed partial view remove the
@model YourModelType from the top of the partial view and it will default to a
The default view engine will search for partial views in the same folder as the view calling the partial and then in the ~/Views/Shared folder. If your partial is located in a different folder then you need to use the full path. Note the use of
~/ in the path below.