Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 未定义的方法'memo';for nil:NilClass错误使用最佳位置_Ruby_Ruby On Rails 3_Json_Best In Place - Fatal编程技术网

Ruby 未定义的方法'memo';for nil:NilClass错误使用最佳位置

Ruby 未定义的方法'memo';for nil:NilClass错误使用最佳位置,ruby,ruby-on-rails-3,json,best-in-place,Ruby,Ruby On Rails 3,Json,Best In Place,我已经为我的应用程序创建了一个简单的备忘录功能,并且已经成功地使用最新的gem实现了就地编辑 我遇到的问题是使用就地编辑创建新的备忘录,下面的代码为nil返回undefined methodmemo:NilClass` #partial for logged in users on homepage <% provide(:title, current_user.name) %> <h1>Hey <%= current_user.name %> </

我已经为我的应用程序创建了一个简单的备忘录功能,并且已经成功地使用最新的gem实现了就地编辑

我遇到的问题是使用就地编辑创建新的备忘录,下面的代码为nil返回
undefined method
memo:NilClass`

#partial for logged in users on homepage
<% provide(:title, current_user.name) %>
<h1>Hey
  <%= current_user.name %>
</h1>
<div class="row-fluid">
  <div class="span12">

    <div class="row-fluid">
      <div class="span6">
        <h2>Memos</h2>
        <ul id="memos" data-update-url="<%= sort_memos_url %>">
            <%# render @memos %>
      <% @memos.each do |memo| %>
        <%= content_tag_for :li, memo do %>
          <%= best_in_place memo, :memo %>
        <% end %>
      <% end %>
        </ul>
        <p><%# link_to "Add a memo", new_memo_path %></p>
    <p><%= best_in_place @memo, :memo, :path => new_memo_path, :nil => "Add a memo" %></p>
       </div>
      <div class="span6"><h2>Coming up...</h2></div>
    </div>
  </div>
</div>

#memos controller
  def index
   @memos = Memo.order("position")
  end

  def show
    @memo = Memo.find(params[:id])
  end

  def new
    @memo = Memo.new
  end

  def create
    @memo = Memo.new(params[:memo])
    if @memo.save
      redirect_to @memo, notice: "Successfully created memo."
    else
      render :new
    end
  end

  def edit
    @memo = Memo.find(params[:id])
  end

  def update
    @memo = Memo.find(params[:id])
    @memo.update_attributes(params[:memo])
    respond_with @memo
  end

  def sort
    params[:memo].each_with_index do |id, index|
      Memo.update_all({position: index+1}, {id: id})
    end 
    render nothing: true
  end

#home page controller
respond_to :html, :json

  def home
    if signed_in?
    @memos = Memo.order("position")
    end
  end

  def sort
    params[:memo].each_with_index do |id, index|
        Memo.update_all({position: index+1}, {id: id})
    end 
    render nothing: true
  end

  def help
  end
end
#主页上的部分登录用户
嘿
备忘录

    新建备忘路径:nil=>“添加备忘”%>

    即将来临。。。 #备忘录控制器 def索引 @备忘录=备忘录订单(“职位”) 结束 def秀 @memo=memo.find(参数[:id]) 结束 def新 @memo=memo.new 结束 def创建 @memo=memo.new(参数[:memo]) 如果@memo.save 将_重定向到@memo,注意:“已成功创建备忘录。” 其他的 渲染:新 结束 结束 定义编辑 @memo=memo.find(参数[:id]) 结束 def更新 @memo=memo.find(参数[:id]) @memo.update_属性(参数[:memo]) 回复@memo 结束 def排序 参数[:memo]。每个带有索引do的_ | id,索引| Memo.update_all({position:index+1},{id:id}) 结束 不渲染:真 结束 #主页控制器 回复:html,:json def主页 如果你签到了? @备忘录=备忘录订单(“职位”) 结束 结束 def排序 参数[:memo]。每个带有索引do的_ | id,索引| Memo.update_all({position:index+1},{id:id}) 结束 不渲染:真 结束 def帮助 结束 结束
我对rails和编程基本上是新手,因此我确信这是一个简单的修复方法,尽管如此,这似乎是我无法修复的方法。

看一看(见3.3.4):

使用分部和变量意味着您需要遵守特定的命名约定。如果您没有这样做,那么您需要将变量(从调用视图)与其一起发送

“form”,:locals=>{:zone=>@zone}%>

感谢您为我指明了正确的方向,非常感谢,这正是我所需要的。最终没有对新操作使用就地编辑,只是一个标准表单,但它已通过部分成功呈现。:)
<%= render :partial => "form", :locals => { :zone => @zone } %>