【问题标题】:Add a column to a table向表中添加列
【发布时间】:2013-02-05 08:11:40
【问题描述】:

如何在我的表中添加一列Users

因为我运行了迁移,所以我必须执行以下操作:

rails generate migration AddShowmsgColumnToUsers show_msg:boolean

然后:

rake db:migrate

但我不确定“AddShowmsgColumnToUsers”。我怎么知道它应该是怎样的?为什么不:AddShow_msgColumnToUsers?如果问题是复数和单数,我可以运行rails console 并检查,但我怎么知道大写字母:ShowMsg/Show_msg/Show_Msg/Showmsg?有什么命令可以帮我检查一下吗?

【问题讨论】:

  • 为什么你的表单是'get'方法?参数是怎么形成的,能发一下吗
  • 抱歉,我正在更新我的主题。
  • 你能再解释一下你的第二个问题吗?
  • 当您提交表单时,会生成一个参数并将其传递给您在表单的操作中指定的操作,只需在更新操作的第一行添加此puts params 检查控制台,show_msg 是否属性存在并且具有正确的值?
  • action 应该是什么?我试图将其设为空白,但它会将我重定向到登录页面并希望我再次登录。
    非常感谢!

标签: html ruby-on-rails ajax


【解决方案1】:

在回答您的第一个问题时,只要表名正确就没有关系 - Rails 使用您为列指定的参数而不是迁移的名称。

另外,你真的应该一次只问一个问题... ;-)

【讨论】:

  • 这很酷。 :) 如果您对问题的不同部分有多个答案,那只会使事情变得混乱。删除第二部分并将其放入新问题可能是个好主意,如果您想引用它,可以随时链接回这个问题。
【解决方案2】:

如果您生成迁移以添加列,则应使用驼峰式或下划线。此外,您不必将“列”放在迁移生成器中,使用 Add...To... 迁移已经知道您正在添加列。

所以要么:

rails generate migration AddShowMsgToUsers show_msg:boolean

或:

rails generate migration add_show_msg_to_users show_msg:boolean

是要走的路。迁移生成器将导致以下迁移:

class AddShowMsgToUsers < ActiveRecord::Migration
  def change
    add_column :users, :show_msg, :boolean
  end
end

当然,您也可以手动完成所有操作,但生成器的全部意义在于您不需要自己编写所有内容。

【讨论】:

    猜你喜欢
    • 2019-09-03
    • 2011-03-01
    • 2022-06-27
    • 1970-01-01
    • 2013-10-05
    • 2019-01-31
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多