create! do |success, failure|
success.html { redirect_to admin_blogs_path }
end
似乎做了很多,但它在哪里....它是铁路的一部分
答案 0 :(得分:3)
假设这是在ActiveRecord模型的上下文中调用的,这似乎不是核心。 create!
的功能是成功创建记录或在发生故障时抛出异常。因此,故障块将不会执行。
它可能是ActionController实例使用的ActiveRecord对象的包装器,并相应地处理状态。您可能希望了解此方法的定义,以便更好地了解它正在做什么。
追踪神秘方法的一种方法是:
raise method(:create!).source_location.inspect
如果可以解析,您将获得一个列出源文件和源代码行的数组。
答案 1 :(得分:2)
正如Matt的评论指出的那样,这个功能是由Jose Valim的inherited_resources宝石提供的。这个宝石通过将所有标准废话抽象成宝石,为人们提供了一种彻底减少CRUD控制器重复的方法。