如何在 Ruby on Rails 中向现有模型添加变量

4

这里是一个初学者的问题。我按照这个链接中的说明建立了一个简单的博客。

如何给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 %>
3个回答

17

为了获得最基本的功能,您必须向您的帖子表添加另一列。

请参见此处以了解如何以编程方式添加列:

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

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

rails generate migration AddColumnNameToPost column_name:string

无论你采取哪种方法,都要确保运行以下命令将这些迁移应用到你的数据库中:

rake db:migrate

从那里,您可以访问:

@post = Post.new
@post.column_name = "value"
#etc

5

drharris的回答相同:

rails generate migration add_newvariableone_and_newvariabletwo_to_modelpluralname newvariableone:string newvariabletwo:string

它将在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

希望这能对您有所帮助,感谢您。


我认为这个答案更有帮助。 - EGurelli

0

你应该查看迁移部分。在你的情况下,你可以使用如下命令:

rails generate migration AddRandomStringToPost random_string:string

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接