ruby 重定向至Rails 7中的show action而不是destroy

7fyelxc5  于 11个月前  发布在  Ruby
关注(0)|答案(1)|浏览(107)

Ruby版本是3.1.2,Rails版本是7.0.3.1
当删除一个用户时,它会重定向到用户控制器中的显示操作而不是销毁操作。用户路线

resources :users

app/controller/users_controller.rb

before_action :set_user, only: %i[ destroy ]
def destroy
    @user.destroy
    respond_to do |format|
    format.html { redirect_to users_url, notice: "User was successfully destroyed." }
      format.json { head :no_content }
    end
end

private
    def set_user
      @user = User.find(params[:id])
    end

app/views/users/index.html.erb

<% @users.each do |user| %>
    <div id="users">
        <%= render user %>
    <% end %>
</div>

app/views/users/_user.html.erb

<p>
  <%= link_to "Destroy this user", user, method: :delete %>
</p>

我们无法删除用户。
我已经按照下面的链接,但这也不工作,在我的项目link_to helper still perfomring get request
谢谢!2谢谢!

gmol1639

gmol16391#

少了魔法的形式

<%= button_to "Destroy this user", user, method: :delete %>

或更多魔术与链接

<%= link_to "Destroy this user", user, data: { turbo_method: :delete } %>

不要忘记将status: :see_other添加到redirect_to users_url
Rails 7就是这样工作的

相关问题