我刚刚切换到rails并开始使用我的第一个应用程序。我在形式和引导程序上有点挣扎! 它说我的表单是渲染,我没有收到任何错误,但我的表单代码都没有显示。 我使用最新的bootstrap-sass和simple_form版本运行rails 4.2.5。 我不确定我的bootstrap css是否实际上正在工作,它似乎不是。一直在尝试不同的版本,安装和卸载以及更改代码几个小时,但似乎可以让它工作。非常感谢您的帮助!
亲切的问候, 延
表单(_form.html.erb)代码;
<%= simple_form_for @book, html: ({ cĺass:'form-horizontal'}) do |f| %>
<div class = "field">
<%= f.input :title, label: "Book Title" %>
<%= f.input :description %>
<%= f.input :author %>
<%= f.button :submit %>
<% end %>
我将我的application.css重命名为.scss,它现在只包含;
@import "bootstrap-sprockets";
@import "bootstrap";
application.js包含:
//= require jquery
//= require jquery_ujs
//= require bootstrap-sprockets
//= require turbolinks
//= require_tree .
答案 0 :(得分:0)
你的代码是部分的,所以你从哪里调用它?它需要在另一个文件中呈现,如index.html.erb。
每当名称以_开头时,表示其部分不是整页,而是在另一页内呈现。
还有一个div不会在你的代码中结束但是为什么当你可以通过Rails传递它时甚至为一个类使用div? class:&#34; field&#34;或类似的东西。
答案 1 :(得分:0)
尝试查看生成的html源代码并查找其中一个输入,以确保它真正得到渲染。如果问题可能是您错过了<div class = "field">
的结束div。
如果没有,那么我建议你看看你的new.html.erb
(或者你的部分渲染,并确保你有类似的东西:
<%= render 'form' %>
请注意=
在这里很重要。如果您错过了这可能是您的问题的原因。
答案 2 :(得分:0)
#app/views/books/new.html.erb
<%= render "form", locals: { book: @book } %>
#app/views/books/_form.html.erb
<%= simple_form_for book, html: ({ cĺass:'form-horizontal'}) do |f| %>
<%= f.input :title, label: "Book Title" %>
<%= f.input :description %>
<%= f.input :author %>
<%= f.submit %>
<% end %>
以上内容应确保您输出有效的表单(HTML)。
如果您仍未看到该表单,则可能会成为CSS问题。不同之处在于CSS为HTML提供了样式定义。
正如其他答案中所提到的,解决方法就在于您为HTML元素提供的类。由于您正在使用bootstrap
,这意味着您必须首先确保已安装并加载bootstrap
。
您可以使用rails-assets
直接从bootstrap
repo中提取:
#Gemfile
source "https://rails-assets.org"
source "https://rubygems.org"
gem 'rails-assets-bootstrap', ">= 4.0.0.alpha"
#app/assets/stylesheets/application.sass
@import bootstrap
-
如果您想直接测试HTML / CSS,则需要从HTML中删除class: "form-horizontal"
类。如果显示表单,则表示您的CSS不正确,在这种情况下,我建议您使用它重新发布。
答案 3 :(得分:-1)
非常感谢!我得到了它的工作,我只是忘记了&#34; =&#34;渲染之前!其他奇怪的事情只是在最后一刻疲惫不堪,试图让它发挥作用。 :P再次,非常感谢你的帮助!