【发布时间】:2015-04-22 07:44:23
【问题描述】:
这是定义表单的正确方法吗,如果我需要提供更多详细信息,请告诉我。
这是 new.html.erb 中的 UserPreference 表单
<%= form_for :user_preference, url: user_preferences_path 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="bgcolor" id="bgcolor">
<option value="#FF3300">Orange</option>
<option value="#00FF00">Green</option>
<option value="#0000FF">Blue</option>
<option value="#FF0066">Pink</option>
<option value="#FFFF00">Yellow</option>
<option value="#FFFFFF">White</option>
</select>
</p>
<p>
<%= u.label :font %><br>
<select name="font" id="font">
<option value="Times New Roman">Times new Roman</option>
<option value="Verdana">Verdana</option>
<option value="Arial">Arial</option>
<option value="sans-serif">serif</option>
</select>
</p>
<br >
<p>
<%= u.submit %>
</p>
当我尝试在 html 中呈现时,我得到了标题和描述, 该属性未在数据库中更新。
UserPreference.controller.rb
class UserPreferencesController < ApplicationController
def new
@user_preference = UserPreference.new
end
def create
@user_preference = UserPreference.new(userp_params)
@user_preference.save unless user_signed_in?
render plain: params[:user_preference].inspect
end
def edit
end
def update
end
private
def userp_params
params.require(:user_preference).permit(:title, :bgcolor, :font, :description)
end
end
【问题讨论】:
-
不,它仍然没有在参数中更新,无论我在表单中提供选项值时是否遗漏了任何内容
-
人们忙着为这个问题投票,但他们无法回答这个问题
-
检查你是否获得了控制器中的所有参数
-
@user120 我可以在 Rails 控制台中看到所有值都在更新,但是当我尝试在控制器中将其呈现为普通哈希时,它只显示标题和描述,我无法更新数据库还有
-
@cyborg 您正在投票,因为您的问题似乎是“这是您定义表单的方式”。你实际上只是在问题的中途潜入真正的问题。你需要让你的实际问题更加突出。
标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2