Rails就地编辑

时间:2010-10-29 23:29:00

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-plugins

我正在使用rails 3并尝试使用in_place_editing插件:

http://github.com/wanglian/in_place_editing

 # Controller
  class BlogController < ApplicationController
    in_place_edit_for :post, :title
  end

  # View
  <%= in_place_editor_field :post, 'title' %>

但是我收到错误:id为nil,错误地为4 - 如果你真的想要id为nil,请使用object_id

我正在调用我的photo_album控制器中的插件,该控制器具有标题属性...

class PhotoAlbumsController < ApplicationController

  in_place_edit_for :photo_album, :title

在索引视图中,我正在执行以下操作:

<% @photoalbums.each do |photoalbum| %>
     <%= in_place_editor_field :photoalbum, 'title' %>
<% end %>

有没有人理解这个或有这个插件的经验?

由于

2 个答案:

答案 0 :(得分:0)

错误是因为,它试图更新nil对象的标题。你应该使用它

<% @photoalbums.each do |photoalbum| %>
     <%= in_place_editor_field photoalbum, 'title' %>
<% end %>

如果你看到插件的代码,那么方法的定义是

def in_place_editor_field(object, method, tag_options = {}, in_place_editor_options = {})

答案 1 :(得分:0)

如果您需要在循环中使用in_place_editor_field,请执行以下操作:

Class Item < AR::Base  
  #attributes like name, price  
end  

<% for some_item in @items %>  
<% @item = some_item %>  
<%= in_place_editor_field :item, :price %>  
<% end %>