【发布时间】:2011-03-29 20:03:23
【问题描述】:
我有一个 Rails 应用程序,我在其中使用自定义样式表,这些样式表对 Rails form_tag 助手生成的 <form> 标记没有影响。有人可以指出一些代码或示例来说明如何将 CSS 样式添加到 form_tag 吗?
【问题讨论】:
标签: ruby-on-rails css
我有一个 Rails 应用程序,我在其中使用自定义样式表,这些样式表对 Rails form_tag 助手生成的 <form> 标记没有影响。有人可以指出一些代码或示例来说明如何将 CSS 样式添加到 form_tag 吗?
【问题讨论】:
标签: ruby-on-rails css
<% form_tag {:controller => 'my_controller', :action => 'my_action'}, :id => 'my_id' do %>
在 .css 文件中
#my_id {
/* your style */
}
【讨论】:
使用form_for 帮助器,您传递的第一个参数由url_for 帮助器专门用于确定将表单提交到哪个URL。 Ruby 将哈希样式命名参数视为单个参数(哈希),因此如果您将一组选项作为第一个参数(例如 form_tag(controller: 'my_controller', action: 'show'))传递,则包含的任何其他选项(例如 :method 或 @987654329 @) 将被视为url_for 而不是form_for 的选项,这不是您想要的。
要解决此问题,您可以将散列作为第一个参数显式传递给form_tag,然后将其他选项(例如类属性,这可能是您想要用于样式的属性)放在此之外哈希,像这样:
<% form_tag {controller: 'my_controller', action: 'show'}, class: 'main-form' do %>
<!-- Form content here -->
<% end %>
之后,您可以像使用任何其他元素一样使用 css 设置表单样式:
.main-form {
// Style rules here
}
【讨论】:
有几种方法可以做到这一点:
form {
color: red;
}
这将抓取所有表单并设置样式。
#id {
color: red;
}
这将获取与 ID 匹配的表单并为其设置样式。
.class {
color: red;
}
这将获取与类匹配的表单并设置它们的样式。
【讨论】: