【发布时间】:2015-04-23 10:01:28
【问题描述】:
我正在尝试从用户那里获取表单的背景颜色并将值存储在 user_preference 表中,并通过从表中获取数据到相同的表单中来应用这些背景颜色。
我的表单如下所示:
<%= form_for @user_preference 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>
<%= u.select :bgcolor, options_for_select(UserPreference.bgcolor_options) %>
</p>
<p>
<%= u.label :font %><br>
<%= u.select :font, options_for_select(UserPreference.font_options) %>
</p>
<br >
<p>
<%= u.submit %>
</p>
<div style="<%= 'background-color:#{@user_preference.bgcolor};' %>"</style></div>
<hr >
<% end %>
我在将值保存到数据库后再次渲染此表单,这是这样做的吗?
这是我的控制器:
class UserPreferencesController < ApplicationController
def new
@user_preference = UserPreference.new
end
def create
@user_preference = UserPreference.new(user_pref_params)
@user_preference.user = current_user
@user_preference.save if user_signed_in?
render 'user_preferences/new'
end
这是正确的做法吗... 让我知道我在哪里做错了,任何帮助将不胜感激。
【问题讨论】:
-
您遇到错误了吗?显然
@user_preference.bgcolor将是一个新记录的空白,可能会给你一个错误。 -
不,我没有收到任何错误,因为我在将值保存到数据库后呈现 new.html.erb。我不知道我的方法是否正确,如何实现?
-
也许你应该让用户在提交表单之前先使用 js 预览更改。
-
@bodyfarmer 请告诉我检查预览的方法
-
您想根据用户创建的最后一个 UserPreference 更改背景颜色吗?我同意@bodyfarmer:您应该让用户先预览更改
标签: css ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4