这是什么在铁轨?

时间:2010-12-01 20:45:00

标签: ruby-on-rails

    create! do |success, failure|      
      success.html { redirect_to admin_blogs_path }
    end

似乎做了很多,但它在哪里....它是铁路的一部分

2 个答案:

答案 0 :(得分:3)

假设这是在ActiveRecord模型的上下文中调用的,这似乎不是核心。 create!的功能是成功创建记录或在发生故障时抛出异常。因此,故障块将不会执行。

它可能是ActionController实例使用的ActiveRecord对象的包装器,并相应地处理状态。您可能希望了解此方法的定义,以便更好地了解它正在做什么。

追踪神秘方法的一种方法是:

raise method(:create!).source_location.inspect

如果可以解析,您将获得一个列出源文件和源代码行的数组。

答案 1 :(得分:2)

正如Matt的评论指出的那样,这个功能是由Jose Valim的inherited_resources宝石提供的。这个宝石通过将所有标准废话抽象成宝石,为人们提供了一种彻底减少CRUD控制器重复的方法。