ruby-on-rails - 将字符串插入 ruby​​ 方法的一部分

标签 ruby-on-rails ruby

我的元素可以是红色、黄色、绿色(比这更复杂)等几个属性之一,并且它们具有相应的 is_red、is_yellow、is_green bool 值。

我想要一个 api 函数来更改我传递的这个值,例如:

id: 12
type: red

在我的函数中有:

item=Item.find(id)
if item.is_ + type == true
  item.is_ + type=false
end 

我该怎么做?

提前谢谢

最佳答案

使用send

item = Item.find(id)

if item.send(:"is_#{type}") == true
  item.send(:"is_#{type}=", false)
end 

关于ruby-on-rails - 将字符串插入 ruby​​ 方法的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12683173/

相关文章:

python - 执行不使用 Sidekiq 的简单 Python 脚本

sql-server - 在 MS SQL Server 2005 中使用 Rails 2.x

ruby-on-rails - Heroku 不使用 Gmail SMTP 发送电子邮件

ruby - 导入数千条记录后无法推送到 Heroku

ruby - Ruby中的$$是什么意思?

ruby-on-rails - 错误 : "Unknown validator: ' PresencesValidator'"when trying to validate a form

ruby-on-rails - 如何使用 bool 值限制Elasticsearch查询结果?

ruby-on-rails - 如何使用 Searchkick/ElasticSearch 获取嵌套的分面

ruby-on-rails - Net::IMAP 失败:连接已关闭

ruby-on-rails - Sprockets::Rails::Helper::AssetNotFound - Assets 管道中不存在 Assets "my_logo.jpeg"