Ruby on rails Rails脚手架站点,无法添加列
因此,我尝试过几次向我的表中添加一列数据,并在一定程度上取得了成功。我能够添加列并将属性名称拉入显示、编辑、索引和表单。但是,每当我尝试添加有关该属性的信息或更新现有数据行以包含该属性时,该属性(对于每一行)都将保持为空 我曾尝试通过RemoveAttrFromModel删除该列,甚至在每次执行rake db:migrate操作时都会看到schema.rb文件添加并删除感兴趣的属性,认为它可能与添加过程有关,但没有效果 我所说的是在我的应用程序>视图>模型文件夹中,如果你制作了一个新的脚手架模型,你会看到我所说的内容,因为我确信它会为你提供新的、显示、索引、编辑和表单文档 我已经更新了new、show index、edit和form文件,以获取和显示新属性 以下是我能做的: 通过rails控制台将数据添加到该属性中 我想做的是:在实际的网站上(将数据添加到该属性值中,编辑数据,显示该属性中的数据) 编辑 这是我的表单.html.erbRuby on rails Rails脚手架站点,无法添加列,ruby-on-rails,ruby,Ruby On Rails,Ruby,因此,我尝试过几次向我的表中添加一列数据,并在一定程度上取得了成功。我能够添加列并将属性名称拉入显示、编辑、索引和表单。但是,每当我尝试添加有关该属性的信息或更新现有数据行以包含该属性时,该属性(对于每一行)都将保持为空 我曾尝试通过RemoveAttrFromModel删除该列,甚至在每次执行rake db:migrate操作时都会看到schema.rb文件添加并删除感兴趣的属性,认为它可能与添加过程有关,但没有效果 我所说的是在我的应用程序>视图>模型文件夹中,如果你制作了一个新的脚手架模型
<%= form_for(@taster) do |f| %>
<% if @taster.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@taster.errors.count, "error") %> prohibited this taster from being saved:</h2>
<ul>
<% @taster.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :age %><br>
<%= f.number_field :age %>
</div>
<div class="field">
<%= f.label :city %><br>
<%= f.text_field :city %>
</div>
<div class="field">
<%= f.label :state %><br>
<%= f.select :state, [
["Alabama", "AL"],
["Alaska", "AK"],
["Arizona", "AZ"],
["Arkansas", "AR"],
["California", "CA"],
["Colorado", "CO"],
["Connecticut", "CT"],
["Delaware", "DE"],
["District Of Columbia", "DC"],
["Florida", "FL"],
["Georgia", "GA"],
["Hawaii", "HI"],
["Idaho", "ID"],
["Illinois", "IL"],
["Indiana", "IN"],
["Iowa", "IA"],
["Kansas", "KS"],
["Kentucky", "KY"],
["Louisiana", "LA"],
["Maine", "ME"],
["Maryland", "MD"],
["Massachusetts", "MA"],
["Michigan", "MI"],
["Minnesota", "MN"],
["Mississippi", "MS"],
["Missouri", "MO"],
["Montana", "MT"],
["Nebraska", "NE"],
["Nevada", "NV"],
["New Hampshire", "NH"],
["New Jersey", "NJ"],
["New Mexico", "NM"],
["New York", "NY"],
["North Carolina", "NC"],
["North Dakota", "ND"],
["Ohio", "OH"],
["Oklahoma", "OK"],
["Oregon", "OR"],
["Pennsylvania", "PA"],
["Rhode Island", "RI"],
["South Carolina", "SC"],
["South Dakota", "SD"],
["Tennessee", "TN"],
["Texas", "TX"],
["Utah", "UT"],
["Vermont", "VT"],
["Virginia", "VA"],
["Washington", "WA"],
["West Virginia", "WV"],
["Wisconsin", "WI"],
["Wyoming", "WY"]
] %>
</div>
<div class="field">
<%= f.label :title %><br>
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :headline %><br>
<%= f.text_field :headline %>
</div>
<div class="field">
<%= f.label :description %><br>
<%= f.text_area :description %>
</div>
<div class="field">
<%= f.label :employmentStatus %><br>
<%= f.select :employmentStatus, [
["Employed Full Time", "employedFullTime"],
["Employed Part Time", "employedPartTime"],
["Freelancing", "freelancing"],
["Not Employed but Looking", "notEmployedbutLooking"],
["Not Employed", "notEmployed"]
] %>
</div>
<br/>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
禁止保存此品尝者:
如果使用generate scaffold,则必须修复控制器上的强参数。。。在您的操作之后,在“private”下,您将看到如下内容:
看到您对问题的编辑后,我假设您的模型是taster,因此此代码应该转到tasters\u controller.rb
:
def taster_params
params.require(:taster).permit(:name, :age, :city, :state, :headline,
:description, :employmentStatus, :title)
end
您应该将新字段添加到此定义的“允许”部分。能否显示您的_form.html.erb?您是否在rails控制台日志中获得了未经允许的参数?检查一下。如果这是你的问题,那么@Stavros Souvatzis的答案已经涵盖了你。我感兴趣的是:标题属性你能展示相关的模型和控制器吗?我还没有明白这个问题。您可以使用title属性创建新记录,但不能使title属性部分用于旧记录?是吗?这是什么文件?我不知道你是如何构建你的应用程序的,但我相信这应该在tasters_controller.rb中,你应该在许可证(…)部分添加:title。顺便说一下,你太棒了。这起作用了。非常感谢。所以脚手架可以做到这一点,但是如果我只是在脚手架之后添加属性,那么它就不会了,对吧?是的,脚手架只是一个构建助手。你只生成一次。在那之后,是手工艺品。。。