如何将变量添加到rails上的现有模型ruby

wil*_*ill 4 ruby ruby-on-rails

这里非常环保的问题.我按照http://guides.rubyonrails.org/getting_started.html中的说明构建了一个简单的博客

如何将另一个字符串变量添加到post对象?


一旦我有了一个新变量,如何在html.erb文件中创建新帖子?下面的代码为我提供了'email'方法的NoMethodError异常.如何在没有错误的情况下运行此代码?

顺便说一句 - 对于后续问题,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 %>
Run Code Online (Sandbox Code Playgroud)

Mik*_*wis 17

至少要获得最低限度的功能,您必须在帖子表中添加另一列.

请参阅此处有关如何按行添加列的信息:

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

或者您可以运行rails generate migration命令,如下所示:

rails generate migration AddColumnNameToPost column_name:string
Run Code Online (Sandbox Code Playgroud)

无论您走哪条路线,请确保运行以下命令将这些迁移应用于您的数据库:

rake db:migrate
Run Code Online (Sandbox Code Playgroud)

从那里你可以访问:

@post = Post.new
@post.column_name = "value"
#etc
Run Code Online (Sandbox Code Playgroud)


Agu*_*tyo 5

同样来自drharris的回答:

rails generate migration add_newvariableone_and_newvariabletwo_to_modelpluralname newvariableone:string newvariabletwo:string
Run Code Online (Sandbox Code Playgroud)

它将在db/migrate里面创建ruby文件,其中的内容就像

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
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助