gpt4 book ai didi

ruby-on-rails - Railscasts #37 未定义方法 'each' 为 nil :nilclass

转载 作者:太空宇宙 更新时间:2023-11-03 17:57:08 25 4
gpt4 key购买 nike

我正在关注 Railcasts 上的视频,但我卡住了。这是我的代码:

本地 Controller .rb

def landing
@locals = Local.search(params[:search])
end

local.rb(模型)

def self.search(search)
if search
where('nome LIKE ?', "%#{search}%")
else
all
end
end

和 View landing.html.erb

<% if signed_in? %>
<%= form_tag root_path, :method => :get, :class => "center form-search" do %>
<p>
<%= text_field_tag :search, params[:search], :class => "input-medium search-query" %>
<%= submit_tag "Search", :name => nil, :class => "btn" %>
</p>
<%= render "landing_search" %>
<% end %>

和引发错误的部分,因为,基本上,@locals 是 nil,因为它说 “undefined method each for nil:nilClass”:

_landing_search.html.erb

<% @locals.each do |local| %>
...

我错过了什么?

我也加了

match '/', to: "locals#landing"

在我的 routes.rb 中,因为在我的例子中,要显示的页面位于根路径中

最佳答案

一切似乎都很好,但我检查了你的代码,你定义了两次 landing Action (底部的一个覆盖第一个):

def landing
@locals = Local.search(params[:search])
end

# ...

def landing #line 86
end

因此,如果您删除第二个,一切都会好起来的。

关于ruby-on-rails - Railscasts #37 未定义方法 'each' 为 nil :nilclass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11527258/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com