Rails 3中的就地编辑

fut*_*ked 10 ajax ruby-on-rails inline-editing

在"显示"页面中有一些用于就地编辑模型的选项,即无需在"编辑"页面中加载表单.例如,请参阅http://www.ruby-toolbox.com/categories/rails_in_place_editing.html.

有没有人在Rails 3中使用任何这些选项(或其他)的经验?任何指针或建议?

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

Lar*_*y K 13

好问题!

  • in_place_editing是由dhh创建的Rails创建者.它由Rails核心团队维护.所以当然应该研究一下.

  • Hobo是一个大型框架,具有就地编辑前端和中心.这是一个顺利的包,但可能超过你想要或需要的.

针对Rails更新3 Railscasts的Ryan推荐Best in Place gem.请参阅Railscast,其中包含示例代码和更多信息.

  • 请注意,`in_place_editing`是基于Scriptaculous的.Rails 3.1及以上版本现在使用jQuery,因此这不再是一个开箱即用的解决方案. (6认同)

Tri*_*rip 1

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

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

如果您了解 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
Run Code Online (Sandbox Code Playgroud)