我正在尝试更新现有的团队名称。用户访问该网站,在文本框中输入他们想要的内容,然后单击“ Enter”提交更改。但是,即使我相信我正在发送ID,也遇到了params错误。
我已经搜索了互联网,尝试撬开,删除/更改/更新了我能想到的所有内容,但没有运气。我知道这是101编程,但是我已经完全了解了。
我已经包括了(我希望是)相关的编码,从控制器开始:
def update
#binding.pry
team = Team.find(params[:id])
team.update!(team_params)
...........
private
def team_params
params.require(:team).permit(:team_name)
end
***** html:
<div class="column">
<h1>Update Team Name</h1>
<br>
<%= form_for :team, url: team_path, method: :patch do |team| %>
<input class="text_field" value="<%= @team.name %>" team.text_field :team_name, required: true %>
<br>
<p>
<input type="submit" name="commit" value="Submit Changes" class="btn btn-success" />
</p>
</div>
我希望用户键入他们想要将团队名称更新为的名称,并且该名称会保留下来。但是,我收到以下错误消息:
TeamsController#update中的ActionController :: ParameterMissing 缺少参数或值为空:团队 提取的来源(第99行左右):
答案 0 :(得分:1)
team_path
需要id
才能工作
<%= form_for :team, url: team_path(@team.id), method: :patch do |team| %>
但是您也应该对此很好
<%= form_for @team, method: :patch do |team| %>
甚至
<%= form_for @team do |team| %>