小编Nic*_*ick的帖子

除了在一个字段外,我怎么能禁止更新?

我一直在模型中使用它来阻止对某些模型的更新:

def update
  self.errors.add_to_base( "Cannot update a #{ self.to_s }" )
end
Run Code Online (Sandbox Code Playgroud)

我现在正在编写一个插件,为模型提供一些额外的功能,我需要更新模型中的一个字段.如果我没有使用插件,我会直接在模型中执行此操作...

def update
  if self.changed == ['my_field']
    super
  else
    self.errors.add_to_base( "Cannot update a #{ self.to_s }" )       
  end
end
Run Code Online (Sandbox Code Playgroud)

我不能从我的插件中做同样的事情,因为我不知道更新行为是ActiveRecord的默认值,还是已被覆盖以防止更新.还有另一种方法可以阻止记录更新,同时允许我覆盖特定字段(并且仅在我的插件应用于此模型的实例中).

ruby activerecord ruby-on-rails

13
推荐指数
2
解决办法
4919
查看次数

如何从字符串插值中转义#{

我有一个heredoc,我用它#{}来插入其他一些字符串,但有一个实例,我也想#{some_ruby_stuff}在我的heredoc中写入实际的文本,而不是插值.有没有办法逃脱#{.

我试过"\",但没有运气.虽然它逃脱了#{},它还包括"\":

>> <<-END
 #{RAILS_ENV} \#{RAILS_ENV} 
END
=> " development \#{RAILS_ENV}\n"
Run Code Online (Sandbox Code Playgroud)

ruby interpolation ruby-on-rails

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

ruby ×2

ruby-on-rails ×2

activerecord ×1

interpolation ×1