Rails:在Bootstrap模式中编辑记录

时间:2013-09-08 23:59:02

标签: ruby-on-rails twitter-bootstrap modal-dialog

我正在尝试在Rails中使用Bootstrap模式来编辑记录,但我无法将模式范围扩展到当前记录

静态链接

<%= link_to "Weigh Out", edit_ticket_path(ticket), "data-toggle" => "modal", :class => 'btn btn-mini', :id => 'edit_modal_link', "data-toggle" => "modal" %>

我真的需要在id / edit上调用模式,这是票号,但无法将其链接到表中的选定记录。

有什么想法吗?

或渲染部分但必须使用可用的故障单调用部分,它是否正确定位到我们需要编辑的故障单?

我的部分看起来像

<%= form_for @ticket, :html => { :class => 'form-horizontal' } do |f|%>    
  <div class="control-group">
    <%= f.label :customer_name, :class => 'control-label' %>
    <div class="controls">
      <%= f.hidden_field :customer_id, :class => 'text_field', :id =>"cust_id" %>
      <%= f.autocomplete_field :customer_name, autocomplete_customer_name_customers_path, :id_element => '#cust_id', :class => 'text_field ui-autocomplete-input' %>
    </div>

需要在Modal中渲染,

2 个答案:

答案 0 :(得分:10)

我假设您要从编辑页面以外的页面加载模态。

我已经通过自己编写链接并使用data-remote指定要加载的远程页面在我的应用程序中工作了。 e.g

<a data-toggle="modal" data-target="#myModal" data-remote="<%= edit_ticket_path(ticket) %> #modal-edit-fields" class="btn btn-mini>Weigh out</a>

data-target指定要将部分渲染到的模态。

edit.html.erb

<%= render 'edit_ticket_fields' %>

_edit_ticket_fields.html.erb (这可以直接在edit.html.erb中)

<div id="modal-edit-fields">
  <%= form_for @ticket, :html => { :class => 'form-horizontal' } do |f| %>      
    <div class="control-group">
      <%= f.label :customer_name, :class => 'control-label' %>
      <div class="controls">
        <%= f.hidden_field :customer_id, :class => 'text_field', :id =>"cust_id" %>
        <%= f.autocomplete_field :customer_name, autocomplete_customer_name_customers_path, :id_element => '#cust_id', :class => 'text_field ui-autocomplete-input' %>
      </div>
    </div>

答案 1 :(得分:7)

另一种方法就是这样:

只需创建一个远程链接:

link_to "edit", edit_ticket_path(ticket), class: "btn btn-mini", remote: true

然后在您的视图中添加edit.js.erb文件:

$("#myModal").html("<%= j render "new"%>");
$('#myModal').modal('show');

并将您的edit.html和new.html文件更改为_new.html和edit.html