gpt4 book ai didi

ruby-on-rails - 在 Bootstrap 模式中渲染 Rails View

转载 作者:行者123 更新时间:2023-12-04 03:41:16 25 4
gpt4 key购买 nike

我撞到了一堵砖墙。我已经解决这个问题很长时间了,我什至不确定我是如何到达我现在的位置的。我只能说,我已经尝试了以下所有方法,但均未成功:

  • How to add bootstrap modal with link_to so the link content open in modal ?
  • How to show twitter bootstrap modal via JS request in rails?
  • rails link_to :remote
  • http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/link_to_remote

  • 如何在“索引” View 的 Bootstrap 模式中呈现"new"、“编辑”和“删除” View ,而不是链接到每个单独的页面?

    这是我现在的代码。现在,让我们忽略“编辑”和“删除”,只关注"new"。当我单击“新建”按钮时,会出现一个带有字符串“<%= j render "items/new"%>"的模式(而不是该 ruby​​ 语句应该呈现的形式)。我究竟做错了什么?:

    items_controller.rb:
    class ItemsController < ApplicationController

    def index
    @items = Item.all
    end

    def new
    respond_to do |format|
    format.js {}
    end
    end

    def create
    @item = Item.new(item_params)
    if @item.save
    flash[:notice] = "'#{@item.name}' saved!"
    redirect_to items_path
    else
    flash[:notice] = "Something went wrong :("
    render "index"
    end
    end

    def edit
    @item = Item.find(params[:id])
    respond_to do |format|
    format.js {}
    end
    end

    def update
    @item = Item.find(item_params[:id])
    if @item.update_attributes(item_params)
    flash[:notice] = "Successfully updated #{@item.name}."
    redirect_to items_path
    else
    flash[:notice] = "Oops"
    # render "edit"
    end
    end

    private
    def item_params
    params.require(:item).permit(:name, :bid, :uuid)
    end

    end

    项目/index.html.erb
    <div class="row">
    <div class="col-xs-12">
    <%= link_to "New", new_item_path, remote: true, class: "btn btn-success pull-right new", data: { toggle: "modal", target: "#newModal" } %>
    </div>
    </div>
    <div class="row">
    <div class="col-xs-12">
    <table class="table table-hover items">
    <thead>
    <tr>
    <th>ID</th>
    <th>Name</th>
    <th>UUID</th>
    <th colspan="2">Links</th>
    </tr>
    </thead>
    <tbody>
    <% @items.each do |item| %>
    <tr>
    <td><%= item.id %></td>
    <td><%= item.name %>

    <!-- edit/remove icons -->
    <span class="edit-remove">
    <%= link_to edit_item_path(item.id), remote: true, data: { toggle: "modal", target: "#editModal" } do %>
    <span class="glyphicon glyphicon-pencil text-muted"></span>
    <% end %>
    <a href="#">
    <span class="glyphicon glyphicon-remove text-muted"></span>
    </a>
    </span>

    </td>
    <td><%= item.uuid %></td>
    <td><%= link_to "XXX", "http://xxx" %></td>
    <td><%= link_to "XXXX", "http://xxx", target: "_blank" %></td>
    </tr>
    <% end %>
    </tbody>
    </table>
    </div>
    </div>

    <!-- newModal skeleton -->
    <div class="modal fade" id="newModal">
    <div class="modal-dialog">
    <div class="modal-content">
    </div>
    </div>
    </div>

    <!-- editModal skeleton -->
    <div class="modal fade" id="editModal">
    <div class="modal-dialog">
    <div class="modal-content">
    </div>
    </div>
    </div>

    <!-- deleteModal skeleton -->
    <div class="modal fade" id="deleteModal">
    <div class="modal-dialog">
    <div class="modal-content">
    </div>
    </div>
    </div>

    项目/new.html.erb
    <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal"><span>&times;</span></button>
    <h4 class="modal-title">New Item</h4>
    </div>
    <div class="modal-body">
    <%= form_for :item, url: { action: "create" } do |f| %>
    <div class="form-group">
    <%= f.label :name, "Name" %>
    <%= f.text_field :name, { class: "form-control" } %>
    </div>
    <div class="form-group">
    <%= f.label :bid, "BID" %>
    <%= f.text_field :bid, { class: "form-control" } %>
    </div>
    <div class="form-group">
    <%= f.label :uuid, "UUID" %>
    <%= f.text_field :uuid, { class: "form-control" } %>
    </div>
    </div>
    <div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
    <%= submit_tag "Save", class: "btn btn-primary" %>
    <% end %>
    </div>

    javascripts/items.js
    $(document).on("page:change", function() {
    $("#newModal .modal-content").html('<%= j render "items/new" %>');
    });

    最佳答案

    例如,在 new 的情况下,您想要呈现一个 javascript 文件。为此,您需要创建 items/new.js.erb。

    此外,从您的链接中删除 ", data: { toggle: "modal", target: "#newModal"}",我们将在 javascript 中执行此操作。

      # new.js.erb
    $("#newModal .modal-content").html('<%= j render "items/form" %>');
    $("#newModal").modal(); // Or whatever the Bootstrap function is to render the modal


    # items/_form.html.slim
    # Here you'll put your form

    您不能直接在 View 上使用“渲染”,您应该渲染部分而不是 View (这就是我要求您将表单放入部分的原因)。

    关于ruby-on-rails - 在 Bootstrap 模式中渲染 Rails View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33767756/

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