【问题标题】:Using the imdb gem to show and its poster function in an erb file with sinatra and ruby使用 imdb gem 在带有 sinatra 和 ruby​​ 的 erb 文件中显示及其海报功能
【发布时间】:2016-07-30 21:26:56
【问题描述】:

我正在尝试使用 sinatra 在 Ruby 服务器中访问海报(来自 imdb gem),然后在我的视图中显示它们(erb 文件)。它显示一个错误(海报的未定义方法),但如果我使用.movies 应用代码如下所示,则不会显示错误。下面是 imdb gem 的调用和我的 erb 代码。希望有人可以帮助我,因为我是使用宝石的新手。谢谢。

# This is the file from my server.rb file in sinatra 
# The :search_term takes an input from a HTML form.
post "/calculate" do
  movie = params[:search_term]
  search1 = Imdb::Search.new(movie)
  @output = search1 
  @output.movies
  redirect "/movie_result"
end

#erb file content
'<%= @output %>'

【问题讨论】:

  • 你能把erb文件名贴出来吗?这对调试很有帮助
  • 我在 erb 文件中的所有内容都显示在这里,不确定它是否正确。感谢您的回复。

标签: ruby sinatra imdb


【解决方案1】:

这与宝石无关。这是关于请求,响应周期。让我告诉你你的错误。

当客户端使用 post 方法向您发送一些参数时,您的代码会进行处理,然后使用重定向响应。 不使用任何本地参数来操作和显示在视图文件中。

使用本地参数渲染视图文件与将操作重定向到新路由不同。

考虑例子。

routes.rb

get '/mocko' do
  @x = "Mocko"
  redirect '/locko'
end

get '/locko' do
  erb :locko, :layout => false
end

locko.erb

Is there x?<strong><%= @x.nil? ? "No" : "Yes" %></strong>

输出(当我请求mocko 时,它会立即重定向我locko

附:如果你能从那里解决,请告诉我。

【讨论】:

  • 感谢您的回复,我得到了它的工作,因为我删除了帖子底部的重定向,并用 erb(:movie_result) 替换它似乎有效,然后在我的图像放置中我改变了它到 " alt="Smiley face" height="140" width="142"> 这似乎可以解决问题。非常感谢您的帮助,非常感谢。 :)
猜你喜欢
  • 2016-10-09
  • 2015-12-06
  • 2013-11-14
  • 2014-04-27
  • 2012-08-18
  • 2011-05-11
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
相关资源
最近更新 更多