【问题标题】:How can user modify color, page and title in rails application用户如何在 Rails 应用程序中修改颜色、页面和标题
【发布时间】:2015-04-17 03:23:21
【问题描述】:

我需要使用 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 %>

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

【问题讨论】:

  • 如果有人反对这个问题,请在评论中告诉我原因,以便我改进。

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


【解决方案1】:

您需要将颜色的十六进制值(例如:#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}")

希望这会有所帮助。

【讨论】:

  • 我是否还需要编写一个 JS 来从用户那里获取价值并反映更改。让我知道一旦我点击表单提交然后它应该去哪个页面
  • 不只是将此值保存在数据库中。并在您用于用户显示详细信息的视图中指定此 css 而不是静态 css。从数据库中获取值,而不是明确指定它们。这是一件非常简单的事情,您只是有点困惑。你可以很容易地做到这一点。
  • 可以给我你的邮箱吗?这有点紧急,所以需要你的帮助
  • 在 stackoverflow 上人们只能帮助你而不是为你编写代码。所以你可以让人们知道你遇到问题的代码,以便他们纠正你。
猜你喜欢
  • 1970-01-01
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-22
相关资源
最近更新 更多