RoR - 如何将一些带有CSS的HTML元素转换为Rails

时间:2010-02-08 10:26:44

标签: html ruby-on-rails css forms

我有旧的HTML代码,包含html和css ..

<form action="login" method="post"> 
<div class="field">
   <label for="username">Username</label>
   <input type="text" class="text" id="username" name="username" value="just click login !"/>
</div>
<span class="fright">
<button class="button" type="submit"><strong>Log In</strong></button>
</span>
</div>

如何将此代码转换为体面的rails代码? 我想出了这个,但它不对:-(:

<% form_for :user, @user,  :url => { :action => "login" } do |f| %>
<% div_for f, :class => "field text" do  %>
        <%= f.text_field :username %>
        <%= f.password_field :password, :class => "field text" %>
    <% end %>
    <span class="fright">
    <%= submit_tag '<strong>Inloggen</strong>', :class => "button",:disable_with => 'verwerken...' %></span>
<% end %>

我遇到了

的问题
 <strong>Inloggen</strong> 

并使用

<% div_for f, :class => "field text" do  %>

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

<% form_for :user, @user,  :url => { :action => "login" } do |f| %>
  <div class="field">
    <%= f.text_field :username %>
    <%= f.password_field :password, :class => "field text" %>
  </div>
  <span class="fright">
    <%= submit_tag 'Inloggen', :class => "button strong",:disable_with => 'verwerken...' %>
  </span>
<% end %>

我将<strong>从submit_tag说明移到了类,因为我不确定submit标记是否会接受它。所以你需要在你的CSS中定义.strong类。

答案 1 :(得分:1)

submit_tag生成文本作为input标记的值属性。

submit_tag "Edit this article"
# => <input name="commit" type="submit" value="Edit this article" />

因此,向该文字添加strong无效,并生成<input>,您似乎需要<button>。所以也可以在这里使用html。

<button class="button" type="submit"><strong>Log In</strong></button>

由于你不需要根据任何变量改变它,你不需要用ruby渲染它。


根据您的目标HTML,您不需要div_for。简单地使用。没有理由让你的模板用ruby渲染。


这里的课不要太努力。有时普通的HTML很好。