如何在Rails中将字符串转换为模型名称?

why*_*why 8 ruby-on-rails-3

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

我想通过type控制器中的params创建一个模型,我有一个名为Post :: Note的模型.

那么如何用params [:type]字符串创建它呢?

Ser*_*sev 11

试试这个:

note_klass = params[:type].camelize.constantize
note = note_klass.new
Run Code Online (Sandbox Code Playgroud)

RE:问题编辑

如果您的Note课程不是全球性的,您可以使用:

const_name = params[:type].camelize
note_klass = Post.const_get(const_name)
Run Code Online (Sandbox Code Playgroud)