[英]Related Articles In Ruby on Rails
我正在尝试在用户当前页面上实现相关文章。 我没有使用黑子之类的东西。 我已经尝试过Uchenna Okafor的这段代码,但出现错误。
在模型中我有
#Related Search
def self.related_search(query, join = "AND")
find(:all, :conditions => related_search_conditions(query, join))
end
def self.related_search_conditions(query, join)
query.split(/\s+/).map do |word|
'(' + %w[name instructions].map { |col| "#{col} LIKE #{sanitize('%' + word.to_s + '%')}" }.join(' OR ') + ')'
end.join(" #{join} ")
end
在show.html.erb上,我有
<%= @recipe.related_search %>
我的错误讯息是
NoMethodError in Recipes#show
Showing /Users/sigidis/Ruby/food/app/views/recipes/show.html.erb where line #129 raised:
undefined method `related_search' for #<Recipe:0x10d4980a0>
Extracted source (around line #129):
126: <hr />
127:
128:
129: <%= @recipe.related_search %>
130:
131:
132: <hr />
Rails.root: /Users/sigidis/Ruby/food
Application Trace | Framework Trace | Full Trace
app/views/recipes/show.html.erb:129:in `_app_views_recipes_show_html_erb__699416749_2260079280_0'
app/controllers/recipes_controller.rb:82:in `show'
Request
Parameters:
{"id"=>"35"}
Show session dump
Show env dump
Response
Headers:
None
有人可以帮我吗,我是Rails的新手,我将不胜感激。 提前致谢。
参考文献。 [http://stackoverflow.com/q/7086092/812668][1]
看起来您可能将实例方法与类方法混淆了。 我不知道您如何创建@recipe
,但是尝试在self.related_search
和self.related_search_conditions
删除self
。
编辑:
好吧,我想我了解得更多。 首先,我假设这些方法在您的recipe.rb
模型中,并且已在class Recipe
和end
recipe.rb
它们包围起来。 其次, @recipe
没有定义。 因此,请使用Recipe
来引用该类。 最后,您的方法至少需要传递第一个参数,在这种情况下为搜索查询。 因此,请尝试以下操作: Recipe.related_search("QUERY HERE")
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.