我现在在学位后教我自己的红宝石。我对这门语言很陌生,想要了解有关迁移如何运作的更多信息。
我已通过迁移更新了现有用户表,以允许添加其他列'用户名'并包含一些HTML / Ruby以允许用户进入该字段。我无法理解rails如何生成INSERT SQL语句或在迁移时更新它们。
以下是我的HTML代码
<%= form_for(user) do |f| %>
<% if user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(user.errors.count, "error") %> prohibited this user from being saved:</h2>
<ul>
<% user.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :username %>
<%= f.text_field :username %>
</div>
<div class="field">
<%= f.label :password %>
<%= f.text_field :password %>
</div>
<div class="field">
<%= f.label :email %>
<%= f.text_field :email %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
&#13;
这是迁移后的架构
我一定错过了什么......
答案 0 :(得分:3)
如果查看服务器日志,您应该找到Unpermitted parameter username
。
您应该允许列入白名单的参数列表中的username
字段。我假设您user_params
中有users_controller.rb
方法。修改它以允许新创建的username
字段。
def user_params
params.require(:user).permit(:username, :password, :email)
end