【问题标题】:Show methods not being called - Rails显示未调用的方法 - Rails
【发布时间】:2015-06-26 19:41:45
【问题描述】:

我是 Rails 新手,我无法弄清楚为什么我的控制器内部的 show def 中的方法没有被调用。

我正在使用 ActiveRestClient 从我的 REST API 中获取数据。在我的 index.html.erb 中一切正常,但是当我尝试移动到下一个视图时,我需要进行 find 调用。

def index
  @t_listings = Listing.all
 #@t_listings = Listing.find(3)
  @listings = Listing.all.paginate({:page => params[:page], :per_page => 10})
end

“所有”GET 请求运行良好,注释掉的“查找”也运行良好。但是,当我尝试为 show 做同样的事情时,它不起作用。

def show
  @listing = Listing.find(params[:id])
 #@listing = Listing.find(3)
end

正在路由页面,因为我可以在浏览器(以及终端服务器日志)中看到该页面,但 @listing 实例变量不包含任何内容(应该如此)。

这是我的控制台显示的内容:

Started GET "/listings/4" for ::1 at 2015-04-20 03:21:54 -0400
Processing by ListingsController#show as HTML
  Parameters: {"id"=>"4"}
  Rendered shared/_topnav.html.erb (0.1ms)
  Rendered listings/show.html.erb within layouts/application (4.3ms)
Completed 200 OK in 57ms (Views: 55.9ms | ActiveRestClient: 0.0ms for 0 calls | ActiveRecord: 0.0ms)

如您所见,没有发送任何 ActiveRestClient GET 请求。这是我的路由文件的样子:

resources :listings
get 'listings/:id/delete' => 'listings#delete', :as => :listings_delete

这里是用来显示的link_to:

<% @listings.each do |listing|%>
    <span><%= link_to "#{listing.title} - #{listing.company}", "/listings/#{listing.id}", :target => "_blank" %> - <%= listing.city%>, <%= listing.state%></span>

我的 show.html.erb 文件几乎是空的,但它是:

<h1>Listings#show</h1>
<p> Find me in app/views/listings/show.html.erb</p>
<%= @listing.id %>

当我运行上面的页面时,我收到错误:undefined methodid' for nil:NilClass. This error is on the 行。`

有谁知道我应该做什么或为什么会这样?

【问题讨论】:

  • 如果您使用过resourceresources,您是否检查过路由。您也可以在命令提示符下使用rake routes 进行检查。让我知道你是否在其中获得了 show 方法。
  • SHOW 的网址是什么?
  • @ManishShrivastava 是的,我得到了 show 方法:listing GET /listings/:id(.:format) Listings#show
  • 你有什么看法?
  • @RAJ 我正在点击“/listings/#{listing.id}”我只需要 ID 参数,所以我认为应该足够好了吗?

标签: ruby-on-rails methods parameters rails-routing active-rest-client


【解决方案1】:

我犯了一个语法错误,我不敢相信我错过了。花了6个多小时。原来我有两个节目定义。难怪它不起作用。给大家添麻烦了。感谢您的帮助。

【讨论】:

  • 信不信由你,你刚刚为我节省了 6 个小时的调试时间
猜你喜欢
  • 2023-03-22
  • 1970-01-01
  • 2012-03-01
  • 2018-01-16
  • 2015-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多