Как добавить переменную в существующую модель ruby ​​на рельсах - PullRequest
4 голосов
/ 14 апреля 2011

Очень зеленый вопрос здесь.Я построил простой блог, следуя инструкциям здесь http://guides.rubyonrails.org/getting_started.html

Как я могу добавить еще одну строковую переменную в объект post?


Как мне создать новую переменную, как мне создавать новые сообщения в файлах html.erb?Код ниже дает мне исключение NoMethodError для метода 'email'.Как заставить этот код работать без ошибок?

btw - что такое соглашение по stackoverflow для последующих вопросов?

<h2>Add a post:</h2>
<%= form_for([@post, @post.actions.build]) do |f| %>
  <div class="field">
    <%= f.label :number_performed %><br />
    <%= f.text_field :number %>
  </div>
  <div class="field">
    <%= f.label :your_email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

Ответы [ 3 ]

17 голосов
/ 14 апреля 2011

Как минимум, чтобы получить минимальную функциональность, вы должны добавить еще один столбец в вашу таблицу сообщений.

Смотрите здесь о том, как программно добавить столбец:

http://api.rubyonrails.org/classes/ActiveRecord/Migration.html

ИЛИ вы можете запустить команду переноса генерации rails следующим образом:

rails generate migration AddColumnNameToPost column_name:string

Независимо от того, по какому маршруту вы идете, убедитесь, что вы выполнили следующее, чтобы применить эти миграции к вашей базе данных:

rake db:migrate

Оттуда вы можете получить доступ:

@post = Post.new
@post.column_name = "value"
#etc
5 голосов
/ 14 апреля 2011

такой же, как ответ от drharris :

rails generate migration add_newvariableone_and_newvariabletwo_to_modelpluralname newvariableone:string newvariabletwo:string

это создаст файл ruby ​​внутри db / migrate, где содержимое, как

class AddNewVariableOneAndNewVariableTwoToModelPluralname < ActiveRecord::Migration
  def self.up
    add_column :modelpluralname, :newvariableone, :string
    add_column :modelpluralname, :newvariabletwo, :string
  end

  def self.down
    remove_column :modelpluralname, :newvariableone
    remove_column :modelpluralname, :newvariableone
  end
end

надеюсь, это поможет вам спасибо

0 голосов
/ 14 апреля 2011

Вам стоит взглянуть на раздел по Миграции . В вашем случае вы бы использовали команду вроде:

rails generate migration AddRandomStringToPost random_string:string
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...