You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

旧Rails+Turbolinks推特克隆迁移至Rails 7 Turbo遇错求助

解决方案

1. 修复TweetPresenter的初始化笔误

打开app/presenters/tweet_presenter.rb,找到初始化方法,修正赋值语句的笔误:

class TweetPresenter
  def initialize(tweet, current_user)
    @tweet = tweet
    @current_user = current_user # 替换原来的 `@current_user = user`
  end

  # 其他 presenter 逻辑...
end

2. 在Turbo Stream模板中传递current_user参数

问题核心是渲染推文局部模板时,没有传入Presenter必需的current_user参数。

修改app/views/tweets/create.turbo_stream.erb,确保渲染时传递current_user:

<%= turbo_stream.append "tweets" do %>
  <%= render partial: "tweets/tweet", locals: { tweet: @tweet, current_user: current_user } %>
<% end %>

接着检查app/views/tweets/_tweet.html.erb,确认Presenter初始化时传入两个参数:

<% presenter = TweetPresenter.new(tweet, current_user) %>

<!-- 渲染推文的其他内容... -->

完成以上两步后,Turbo Stream就能正确渲染新创建的推文,不会再出现参数缺失的模板错误。

内容的提问来源于stack exchange,提问作者German

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 17:22:11