首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对于nil:NilClass的未定义方法“link”

对于nil:NilClass的未定义方法“link”
EN

Stack Overflow用户
提问于 2012-12-14 12:48:06
回答 1查看 1.2K关注 0票数 1

我已经将我的项目上传到heroku,但是我得到了一个错误:NoMethodError in Items#hype_itemundefined method "link" for nil:NilClass。当我使用本地主机时,它在我的计算机上工作。

我做了这件事:

  1. heroku运行rake db:创建
  2. herouk运行rake db:
  3. heroku重启

...and阅读了很多关于这个问题的文章,但是它并没有解决这个问题。

有什么建议吗?

这是原木

代码语言:javascript
运行
复制
2012-12-14T11:54:02+00:00 app[web.1]: Processing by ItemsController#hype_item as HTML
2012-12-14T11:54:03+00:00 app[web.1]:   Rendered items/hype_item.html.erb within layouts/application (75.2ms)
2012-12-14T11:54:03+00:00 app[web.1]: Completed 500 Internal Server Error in 405ms
2012-12-14T11:54:03+00:00 app[web.1]: 
2012-12-14T11:54:03+00:00 app[web.1]: ActionView::Template::Error (undefined method `link' for nil:NilClass):
2012-12-14T11:54:03+00:00 app[web.1]:     6:        <p><div id="abc"><%= raw @item.link %></div></p>
2012-12-14T11:54:03+00:00 app[web.1]:     8: </div>
2012-12-14T11:54:03+00:00 app[web.1]:     3: 
2012-12-14T11:54:03+00:00 app[web.1]:   app/views/items/hype_item.html.erb:6:in `_app_views_items_hype_item_html_erb___686068816707788662_29579640'
2012-12-14T11:54:03+00:00 app[web.1]: 
2012-12-14T11:54:03+00:00 app[web.1]:     4: <div class="modal hide" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="tr">
2012-12-14T11:54:03+00:00 app[web.1]:     5:    <div class="modal-body">
2012-12-14T11:54:03+00:00 app[web.1]:     7:    </div>
2012-12-14T11:54:03+00:00 app[web.1]: 
2012-12-14T11:54:03+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.erb (18.7ms)
2012-12-14T11:54:03+00:00 heroku[router]: at=info method=GET path=/ host=enigmatic-tor-2280.herokuapp.com fwd=84.48.62.139 dyno=web.1 queue=0 wait=0ms connect=16ms service=773ms status=500 bytes=26039
2012-12-14T11:54:03+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.6/lib/action_dispatch/middleware/templates/rescues/template_error.erb within rescues/layout (29.9ms)
2012-12-14T11:54:03+00:00 app[web.1]:   Rendered vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.0ms)

...and gemfile文件

代码语言:javascript
运行
复制
source 'https://rubygems.org'

gem 'rails', '3.2.6'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'
gem "less-rails", "~> 2.2.6"
gem 'therubyracer'
gem 'bcrypt-ruby', :require => 'bcrypt'


group :assets do
  gem 'sass-rails',   '~> 3.2.3' #mulig denne må flyttes ut av asset group for å virke
  gem 'coffee-rails', '~> 3.2.1'

  # See https://github.com/sstephenson/execjs#readme for more supported runtimes
  # gem 'therubyracer', :platforms => :ruby

  gem 'uglifier', '>= 1.0.3'
  gem 'twitter-bootstrap-rails'
end

group :production do
  gem 'pg'
end
group :development, :test do
  gem 'sqlite3'
end

gem 'thin'
gem 'jquery-rails'

hype_item.html.erb

代码语言:javascript
运行
复制
<div id="counter"></div>
<div id="play_button"> <a id="play" role="button"><%= image_tag("Play.png")%></a></div>

<div class="modal hide" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="tr">
    <div class="modal-body">
        <p><div id="abc"><%= raw @item.link %></div></p>
    </div>
</div>

告诉我,如果你需要看更多的文件,我不确定什么是相关的。

EN

Stack Overflow用户

回答已采纳

发布于 2012-12-19 12:31:47

正如包里克指出的那样,问题是@项目是零的。

因此,我改变了(在hype_item.html.erb中):

代码语言:javascript
运行
复制
<p><div id="abc"><%= raw @item.link %></div></p>

至:

代码语言:javascript
运行
复制
<p><div id="abc"><% if @item %> <%= raw @item.link %> <% end %></div></p>

这可能不是最好的解决方案,但它奏效了。

尽管给出一个更好的解决方案,也许这可以在控制器中完成。

谢谢你的反馈!

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13879016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档