【发布时间】:2014-11-25 20:22:09
【问题描述】:
在 Rails 中,管理员可以使用以下表单来编辑“exchange”类的实例:
<%= form_for(@exchange) do |f| %>
<div class="form-group">
<%= f.label :status %><br>
<%= f.text_field :status, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :status_1 %><br>
<%= f.text_field :status_1, class: "form-control" %>
</div>
<div class="form-group">
<%= f.label :status_2 %><br>
<%= f.text_field :status_2, class: "form-control" %>
</div>
<div class="form-group">
<%= f.submit "Submit Changes", class: "btn btn-primary" %>
</div>
<% end %>
此表单正在 exchanges/edit.html.erb
上呈现我有以下控制器操作:
def edit
@exchange = Exchange.find(params[:id])
end
def update
@exchange = Exchange.find(params[:id])
@exchange.update(exchange_params)
respond_with @exchange
end
我的路线.rb:
resources :exchanges do
patch :update_ordid, on: :member
patch :update_ordlnk, on: :member
post :mark_arrival, on: :member
post :close_exchange, on: :member
end
我知道“更新”控制器操作已成功调用,因为单击提交按钮后,我将被重定向到相关交换的视图页面。问题是数据库中该交换的记录没有更新。
【问题讨论】:
-
你能发布你的
exchange_params和routes.rb吗? -
添加了我的routes.rb,exchange_params不就是表格中列出的参数吗?
-
不,使用 Rails 4 和强大的参数,您必须定义要接受的参数。我会发布你的答案。
标签: ruby-on-rails