簡體   English   中英

在保存到Ruby on Rails之前如何修改記錄

[英]How to modify a record before saving on Ruby on Rails

尋找一種方法:

  • 更改新記錄的字段之一(即-強制將其轉換為小寫),然后再將其保存到RoR數據庫中。 我試過了:

    before_create做| term | term.myfield.downcase! 結束

但這給出了以下錯誤:

undefined method `before_create' for RowsController:Class

要么

  • 檢查該字段是否全部為小寫,如果不是,則引發錯誤消息,並且不創建記錄。

嘗試過:

before_filter :check_lowcase, :only => [:new]
def check_lowcase
  if (Term.new =~ /[^a-z]+/)
    flash[:notice] = "Sorry, must use lowercase"
    redirect_to terms_path
  end
end

這似乎只是被忽略了。

您需要在模型上執行操作,而不是在控制器上執行操作:

class YourModel < ActiveRecord::Base
 before_create :downcase_stuff

  private
    def downcase_stuff
      self.myfield.downcase!
     end
end

before_save { |classname| classname.myfield = myfield.downcase }

    before_create :lower_case_fields

    def lower_case_fields
       self.myfield.downcase!
    end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM