用户如何修改rails应用程序中的颜色,页面和标题

时间:2015-04-17 03:23:22

标签: ruby-on-rails ruby ruby-on-rails-4 devise

我需要使用ROR创建单页网站,允许用户修改该页面的样式。用户至少应该能够更改页面上的颜色,标题和字体,但不能修改用于样式化页面的控件。数据应该通过ActiveRecord保存,更改应该保持会话。

我的问题:我在这里为用户创建了表单并在用户表中创建了三个字段,即字体,背景颜色和标题,并使用设计进行身份验证,但是如何为用户保存字体,标题和样式以便更改应反映在页面中,并且更改应该在会话中持续存在。

    class User < ActiveRecord::Base
      devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
    end

static_page.html.erb

<%= form_for :user do |u| %>
      <p>
        <%= u.label :title %><br>
        <%= u.text_field :title %>
      </p>

      <p>
        <%= u.label :description %><br>
        <%= u.text_field :description %>
      </p>

      <p> <%= u.label :back_ground_color %><br>
        <select name="back-ground" id="bgcolor">
            <option value="1">Orange</option>
            <option value="2">Green</option>
            <option value="3">Blue</option>
            <option value="4">Pink</option>
            <option value="5">Yellow</option>
            <option value="6">White</option>
        </select>
      </p>

      <p>
        <%= u.label :font %><br>
        <select name="font" id="font">
            <option value="1">Times new Roman</option>
            <option value="2">Calibri</option>
            <option value="3">fantasy</option>
            <option value="4">serif</option>
        </select>
      </p>
     <br >
      <p>
        <%= u.submit %>
      </p>
    <% end %>

现在我该怎么做才能提交此表单以便它可以正常工作 不要忘记 - 我需要更改背景颜色,字体,标题以及存储在数据库中以保持持久性。

1 个答案:

答案 0 :(得分:0)

您需要在数据库中存储颜色的十六进制值(例如:#FFFFFF)。然后在视图中,您可以提供内联css,也可以使用帮助程序生成它:

content_tag(:span, "",  :style => "background-color:#{current_user.font_color}")

您可以以相同的方式使用内联css。以同样的方式你可以为字体和其他东西做。就像存储字体名称一样:"Times New Roman"然后在font-family中指定它。在任何地方使用这些动态名称,如果有人没有输入任何值,您总是可以使用默认值,如下所示:

content_tag(:span, "", :style => "background-color:#{current_user.font_color.nil? ? '#FFFFFF' : current_user.font_color}")

希望这有帮助。