【问题标题】:Unable to render form inside twitter bootstrap modal?无法在 twitter 引导模式中呈现表单?
【发布时间】:2013-12-24 10:33:33
【问题描述】:

我正在尝试在我的 ruby​​ on rails 应用程序中使用模式。使用 twitter-bootstrap-rails。

我的代码

在我使用模态的页面中是(view/auth/main/)

<a href="#sneh"role="label" class="link" data-toggle="modal">Add Asset</a>
<div id="sneh" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="myModalLabel">Add Asset</h3>
</div>
<div class="modal-body">
    <p>
     <%= render "vendors/new" %>
    </p>
    </div>
  </div>

我有一个vendors controllernew.html.erb 页面。在new.html.erb

   <%= form_for(@vendor) do |f| %>
      <table width="700">
        <tr>
          <td>
            <%= f.label :Full_name %>
            <h3><i class="fa fa-user"></i>
              <%= f.text_field :name %>
            </h3>
          </td>
           <td>
            <%= f.label :address %><h3><i class="fa fa-align-justify"></i> 
            <%= f.text_area :address %></h3>
          </td>
        </tr>
          <tr>
            <td>

             <%= f.label :email %><h3><i class="fa fa-envelope"></i>
             <%= f.text_field :email %></h3>
           </td>
             <td>

              <%= f.label :location %><h3><i class="fa fa-map-marker"></i>
              <%= f.text_field :location %></h3>
            </td>
          </tr>
          <tr>
            <td>

             <%= f.label :ph_no %><h3><i class="fa fa-phone"></i>
             <%= f.text_field :ph_no %></h3>
           </td>
             <td>

              <%= f.label :mobile_no %><h3><i class="fa fa-phone-square"></i>
              <%= f.text_field :mobile_no %></h3>
            </td>
          </tr>
          <tr>
            <td>

              <%= f.label :asset_name %><h3><i class="fa fa-truck"></i> 
              <%= f.text_field :asset_name %></h3>
            </td>
          <td>
                  <%= f.submit "Save", class: "btn  btn-primary btn-lg btn3d" %>
                  <%= f.submit "Cancel",  class: "btn btn-danger btn-lg btn3d" %>
                </td>
                </tr>
                </table>

添加render 命令后,我收到错误消息,例如 ActionView::MissingTemplate in Auth#main 当我删除它并在html 中编写表单时,它可以工作,但是如果我想在 rails 中做同样的事情该怎么办..谢谢。:)

【问题讨论】:

    标签: javascript jquery ruby-on-rails ruby twitter-bootstrap


    【解决方案1】:

    创建部分_form.html.erb 之后。 错误在控制器auth controller.rb 您应该在 auth controller.rb 中进行的更改

    def main
      @vendor = Vendor.new
    end
    def create
        @vendor = Vendor.new(params[:vendor])
            if @vendor.save
                flash[:success] = "Vendor Added Successfully"
                render @vendor
            end
      end
      def show
    @vendor = Vendor.find(params[:id])
    
    @title = @vendor.name
    end
    

    这将保存到您的数据库中。 谢谢。

    【讨论】:

      【解决方案2】:

      您可以创建部分让'_form.html.erb'。把new.html.erb的所有内容都放进去。

      在new.html.erb中,

      <%= render "/vendors/form" %>
      

      在modal中也同样使用。

      <%= render "/vendors/form" %>
      

      【讨论】:

      • -现在它正在渲染到_form.html.erb,但在第一行给出错误form_for (@vendors) fo |f|,例如 1) 表单中的第一个参数不能包含 nil 或为空 2)ArgumentError in Auth#主要
      • 你需要在你当前的controller#action中定义@vendor = Vendor.new。
      • 那么它将如何保存在数据库中以及如何调整模态的大小。?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-12
      • 2020-11-30
      • 2013-11-14
      • 1970-01-01
      • 2016-12-06
      • 2014-12-13
      相关资源
      最近更新 更多