gpt4 book ai didi

javascript - 在 Rails 应用程序中使用 AJAX 更新模型字段而不使用表单

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:06 25 4
gpt4 key购买 nike

我有一个看起来像这样的表:

enter image description here

每一行都来自这个部分:

<div class="row chord-table-row" id= <%= "chord-#{chord.id}" %>>
<div class="small-1 columns"><%= chord.id %></div>
<div class="small-2 columns"><%= chord.name %></div>
<div class="small-3 columns"><%= chord.description %></div>
<div class="small-3 columns"><%= chord.user.username %></div>
<div class="small-3 columns"><%= link_to 'Approve', approve_path, class: 'chord-approval-button' %></div>
</div>

如何让“批准”按钮转到 chords_controller 中的 approve 操作,这将更新 state 字段Chord,然后运行approve.js.coffee中的JS/Coffeescript?

我(理想情况下)想在“批准”链接中使用 remote: true,但我不确定如何确保 Controller 知道哪个 Chord 被批准。

现在 #approve 操作看起来像这样:

def approve
chord.approve
# this method is on the Chord model and is working
respond_to do |format|
format.js
end
end

我想以正确的“rails ”方式执行此操作,因此非常感谢任何指导/建议!谢谢!

最佳答案

添加成员路由以供审批:

resources :chords do
member do
post 'approve'
end
end

然后 url 助手将接受和弦/和弦 ID。您可以使用 remote: true 就像您想要的那样:

<%= link_to 'Approve', approve_chord_path(chord), remote: true, method: :post %>

Chord id 将作为 params[:id] 到达参数中,因此您可以在 Controller 中执行此操作:

@chord = Chord.find(params[:id])
@chord.approve

您的 respond_to block 看起来不错,您的 JavaScript 将运行。

关于javascript - 在 Rails 应用程序中使用 AJAX 更新模型字段而不使用表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20589303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com