这是我的评论控制器代码
def create
@comment = current_user.comments.new(comment_params)
@feed = Feed.find(params[:comment][:feed_id])
@comment.commentable = @feed
@parent = params[:comment][:parent] if params[:comment][:parent].present?
respond_to do |format|
if @comment.save
format.turbo_stream
format.html { redirect_to feeds_path, notice: "Comment was successfully created." }
format.json { render :show, status: :created, location: @comment }
else
format.html { render :new, status: :unprocessable_entity }
format.json { render json: @comment.errors, status: :unprocessable_entity }
end
end
end
我的“create.turbo_stream.erb”代码如下
<%if @parent.present?%>
<%= turbo_stream.update("feeds-list-parent-#{@parent}",
partial: "feeds/feed",
locals: { feed: @feed }) %>
<%else%>
<%= turbo_stream.update("feeds-list-#{@feed.id}",
partial: "feeds/feed",
locals: { feed: @feed }) %>
<%end%>
console.log('hi') # this is not working here and no log. also <script> tag is not working.
如何执行一些js代码,因为我想在这里使用js隐藏弹出div?
我尝试了不同的选项来执行 js 但不起作用。
<script>
标签必须位于 Turbo 流内才能可执行:
<%= turbo_stream.update "feeds-list-#{@feed.id}" do %>
<%= render "feeds/feed", feed: @feed %>
<script>
console.log("hi")
</script>
<% end %>
或在单独的涡轮流中:
<%= turbo_stream.update "feeds-list-#{@feed.id}", partial: "feeds/feed", locals: {feed: @feed} %>
<%= turbo_stream.after "feeds-list-#{@feed.id}" do %>
<script>
console.log("hi")
</script>
<% end %>