Ruby 未定义的方法'memo';for nil:NilClass错误使用最佳位置
我已经为我的应用程序创建了一个简单的备忘录功能,并且已经成功地使用最新的gem实现了就地编辑 我遇到的问题是使用就地编辑创建新的备忘录,下面的代码为nil返回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 %> </
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 } %>