【问题标题】:jeditable and rails 3jeditable 和 rails 3
【发布时间】:2010-07-28 08:15:39
【问题描述】:

我正在尝试将 jeditable 与我的 rails 3 应用程序一起使用。我想内联编辑一些字段。 实际上它在我的客户端工作,但我的应用程序中的数据没有更新。

你能看一下吗?提前致谢!

我的看法:

<dt>Overview :</dt>
<dd class="edit_textfield" id="<%= @project.id %>" name="overview"><%= @project.overview %></dd>

我的控制器:

 def update
    project = Project.find(params[:id])
    overview = params[:value]
    project.save
    render :text => params[:value]
  end

我的 application.js:

$(".edit_textfield").each( function() {    
      $(this).editable('update', {
            type    :   'textarea',
            cancel  :   'Cancel',
            submit  :   'OK',
            indicator   :   'Saving...',
            tooltip :   'Click to edit...',
            rows        :       10,
            method      :       "put",
            submitdata  :   {id: $(this).attr('id'), name:$(this).attr('name') }
        });
});

感谢kschaper,它可以工作了。

但是当我对页面中的 2 个字段使用 jeditable 并编辑它们时,只保存了一个。 Rails 认为第二个值是 0

我认为问题出在我的控制器上:

  def update
    @project = Project.find(params[:id])
    @project.name = params[:name] 
    @project.overview = params[:overview]
    @project.save
    respond_to do |format|
      format.js  #{ render :text => params[:value] }

    end
  end

你有线索吗?

【问题讨论】:

  • 完全不相关,但 jeditable 是一个很棒的名字 ;)

标签: jquery ruby-on-rails jeditable ruby-on-rails-3


【解决方案1】:

概览是项目的属性吗?那么应该是

@project.overview = params[:value]

【讨论】:

    【解决方案2】:

    我学rails的时间不长,但我觉得产品需要'@'。

    像这样:

    def update
      @project = Project.find(params[:id])
      overview = params[:value]
      @project.save
      render :text => params[:value]
    end
    

    也许……

    【讨论】:

    • 谢谢rainisic,但还是一样;-)
    【解决方案3】:

    仅供参考——ID 属性必须以字母开头。您在视图中拥有的内容不会通过验证。您需要在模板中添加一些文本,然后在 application.js 中将其删除,然后再将其发送到提交数据中。

    【讨论】:

      猜你喜欢
      • 2010-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2011-03-18
      • 2012-12-06
      • 2011-08-31
      相关资源
      最近更新 更多