所以我现在已经搜索了一段时间了,到目前为止,我尝试过的许多修复程序都让我陷入了一个兔子洞。话虽这么说,我正在试着看一个我刚刚创建的故事,但是当我去查看它时,我得到了错误 “ActiveRecord :: RecordNotFound(无法找到带有'id'=”namegoeshere“的故事)”。
然后指向我的stories_controller为'show'
def show
@story = Story.find(params[:id])
@responses = @story.responses.includes(:user)
@related_stories = @story.related_stories
if request.path != story_path(@story)
redirect_to @story, status: 301
end
end
我不清楚这里会发生什么,因为我认为
@story = Story.find(params[:id])
会列出所有故事。这是我的路线
resources :users, only: [:show, :edit, :update] do
resources :recommended_stories, only: [:index]
end
resources :stories, except: [:index] do
resources :responses, only: [:create]
end
此show.html.erb文件中的部分
<div class="sidebar-top-stories">
<ul>
<% @dashboard.top_articles.each_with_index do |story, index| %>
<li class="top-articles-list-item">
<div class="count-button-wrapper">
<span class="count-button"><%= index + 1 %></span>
</div>
<div class="top-articles-links">
<%= link_to story.title, story, class: 'story-title' %><br/>
<small>
<%= react_component("PopoverLink", { user_id: story.user.id, url: user_path(story.user), children: story.username }) %>
</small>
</div>
</li>
<% end %>
</ul>
</div>
在模型故事中
extend FriendlyId
friendly_id :title, use: [ :slugged, :history, :finders ]
这是cmd Story.find_each(&amp;:save)的日志 logs
感谢您解决这一困境的一些帮助。
如果需要更多信息,请告诉我。
答案 0 :(得分:0)
所以错误是双重的,第一部分友好的id gem是导致我收到ActiveError消息的原因。第二部分是我在我的应用程序中使用elasticsearch,我的用户/故事不是索引。因此,每次我发布一个故事时,我的应用程序都找不到用户/故事ID(也就是友好ID),其中elasticsearch正试图找到友好ID。所以我添加了友好的方法,
def show
@story = Story.friendly.find(params[:id])
end
然后我手动为我想要搜索的每个表运行elasticsearch索引。
bundle run rake elasticsearch:import:model Class='User' Force=y
一旦完成了这两件事,一切都终于运转良好了。
值得注意的是,我在Windows平台上构建了应用程序,因此如果我在苹果或Linux上运行它,我可能不得不做更多必要的事情。