ruby-on-rails-3 - 如何在 Rails 中将字符串变形为模型名称?

标签 ruby-on-rails-3

有一个http://localhost:3000/me/posts/new?type=note

我想通过 Controller 中的参数type创建一个模型,并且我有一个名为 Post::Note 的模型。

那么如何通过 params[:type] string 创建它?

最佳答案

试试这个:

note_klass = params[:type].camelize.constantize
note = note_klass.new

回复:问题编辑

如果您的 Note 类不是全局的,您可以使用:

const_name = params[:type].camelize
note_klass = Post.const_get(const_name)

关于ruby-on-rails-3 - 如何在 Rails 中将字符串变形为模型名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14562553/

相关文章:

ruby-on-rails - Rails 验证上下文

ruby-on-rails - 如何优雅地为具有多态关联的模型构建表单?

ruby - 验证框架的替代 Rails

ruby-on-rails - Rails Controller 如何解析JSON并自动嵌套参数?

ruby-on-rails - rails3 嵌套包括?

ruby-on-rails - 在多个 Controller 中重构 "render format"

mysql - 如何为rails/mysql使用多个结构相同但每个用户内容不同的数据库?

ruby-on-rails - ActiveMessaging 生成器问题 - 不支持 Rails 3

ruby-on-rails - 在 Rails 中从 JSON 文件导入种子数据时设置对象的 ID

ruby - 属性值无