Лучший ответ, который я нашел до сих пор, выполняется это от Вашего корня проекта:
ruby script/generate migration add_d_column_to_myModel
Затем редактируют новый файл миграции, расположенный в дб/миграции для взгляда чего-то как:
def self.up
add_column :myModel, :d, :string
end
def self.down
remove_column :myModel, :d
end
последний шаг должен будет обновить Ваши представления соответственно.
Ответ нашел здесь
, функции Таблицы нашли здесь
{* url}
будет соответствовать всему пути, а не только одному сегменту. Однако, поскольку он соответствует всему пути, вы не можете сопоставить партнерский идентификатор в конце. Маршрут будет соответствовать каждому запросу. Вы можете обойти это, добавив ограничение маршрута, чтобы убедиться, что url
имеет в конце партнерский идентификатор:
routes.MapRoute(
"WithAffiliate",
"{*url}",
new { controller="Home", action="LogCookieAndRedirect" },
new { url = @"/x[0-9]+$" }
);
После этого ваше действие должно будет проанализировать партнерский идентификатор из URL
сам параметр. Если у вас есть возможность изменить структуру URL-адреса, можно было бы сопоставить идентификатор, если бы он был в начале пути:
routes.MapRoute(
"WithAffiliate",
"x{affiliateExternalId}/{*url}",
new { controller="Home", action="LogCookieAndRedirect" }
);
У вас может быть этот маршрут для приема всей почты домена, только если у вас определен только один маршрут. Но если у вас несколько маршрутов, вам придется добавить этот параметр {affiliateExternalId}
ко всем маршрутам (если я чего-то не упустил).
Второй Роберт Харви предложение .
Если бы я делал это, я бы сделал его одним из значений в строке запроса.
Пример:
http//www.domain.com/path/to/something?affiliate=X32&query=string
Проблема в том, что идентификатор партнера необязательный . Если вы поместите его в путь, вы измените структуру пути в зависимости от того, присутствует ли партнерский идентификатор или нет, поэтому вам придется делать каждый из ваших маршрутов дважды (один раз с партнерским идентификатором, а другой - без). .