【问题标题】:in-place edit in Rails 3Rails 3 中的就地编辑
【发布时间】:2010-08-16 06:45:08
【问题描述】:

有几个选项可以在“显示”页面中就地编辑模型,即无需在“编辑”页面中加载表单。例如,请参阅http://www.ruby-toolbox.com/categories/rails_in_place_editing.html

有没有人在 Rails 3 中使用过这些选项(或其他选项)?有什么指点或建议吗?

就我而言,我有一个由可变数量的项目组成的相当长的表格。从可用性的角度来看,在同一页面中编辑这些项目中的文本是很有意义的,而不需要为每个将用户发送到特定项目的编辑页面的编辑按钮。

【问题讨论】:

    标签: ruby-on-rails ajax inline-editing


    【解决方案1】:

    很好的问题!

    • in_place_editing 是由 dhh,Rails 的创建者。它由 Rails 核心团队维护。所以当然应该调查一下。

    • Hobo 是一个大型框架,具有前端和中心就地编辑功能。这是一个流畅的包,但可能比您想要或需要的更多。

    为 Rails 3 更新 Railscasts 的 Ryan 推荐使用 Best in Place gem。请参阅 Railscast 以及示例代码和更多信息。

    【讨论】:

    • 请注意,in_place_editing 是基于 Scriptaculous 的。 Rails 3.1 及更高版本现在使用 jQuery,所以这不再是一个开箱即用的解决方案了。
    【解决方案2】:

    当然这对我来说很有意义。我一直这样做。

    例如,我正在研究一个复杂的多态嵌套模型表单,它只有两个视图。一个索引,以及一个用于动态添加更多属性的部分。

    如果您了解 AJAX,那么这对您的 UI 很有帮助,因为您的用户甚至不必单击保存按钮。

    要做到这一点的最低限度。设置一个 index.html.erb,其中包含您的表单。

    在您的控制器中,您可以像这样指定您的操作:

    def update
      @quick_fact = @organization.quick_facts.find(params[:id])
      if @quick_fact.update_attributes(params[:tab])
        flash[:notice] = 'Text Tab was successfully updated.'
        redirect_to quick_facts_organization_path(@organization)
      else
        render :action => "index", :id => params[:id]
     end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      • 2011-01-08
      • 2013-03-06
      • 1970-01-01
      相关资源
      最近更新 更多