rails3 更新控制器中的参数
rails3 update param in controller
如果在表单上使用某个提交按钮,我想更新 Rails3 控制器中的 2 列值。
表单上的提交按钮:
<%= simple_form_for @costproject, :html => {:class => 'form-horizontal'}, :validate => true do |f| %>
...
<%= f.submit 'Submit to Division', :class => 'btn btn-warning', :name => "submit1" %>
控制器中的更新逻辑:
class CostprojectsController < ApplicationController
...
def update
...
params[:coststatus_id] = 2 if params[:submit1]
params[:submit_date] = Date.today if params[:submit1]
respond_to do |format|
if @costproject.update_attributes(params[:costproject])
flash[:success] = "Project Submitted" if @costproject.previous_changes.include?(:submit_date)
format.html { redirect_to nextpath }
format.json { render json: @costproject }
else
format.html { render action: "edit" }
format.json { render json: @costproject.errors, status: :unprocessable_entity }
end
end
end
如果我停止执行并发出警报,看起来参数已经设置好了。但是,这些值不会保存到数据库中。
如果要将模型保存到数据库,则需要更新模型。您只是在 update
操作中更改参数。
你需要这样的东西:
def update
@cost_project = Costproject.find(params[:id])
@cost_project.update(coststatus_id: 2, submit_date: Date.today) if params[:submit1]
end
.update
将更新并保存数据库中的记录
这似乎有效:
params[:costproject][:coststatus_id] = 2 if params[:submit1]
params[:costproject][:submit_date] = Date.today if params[:submit1]
respond_to do |format|
如果在表单上使用某个提交按钮,我想更新 Rails3 控制器中的 2 列值。
表单上的提交按钮:
<%= simple_form_for @costproject, :html => {:class => 'form-horizontal'}, :validate => true do |f| %>
...
<%= f.submit 'Submit to Division', :class => 'btn btn-warning', :name => "submit1" %>
控制器中的更新逻辑:
class CostprojectsController < ApplicationController
...
def update
...
params[:coststatus_id] = 2 if params[:submit1]
params[:submit_date] = Date.today if params[:submit1]
respond_to do |format|
if @costproject.update_attributes(params[:costproject])
flash[:success] = "Project Submitted" if @costproject.previous_changes.include?(:submit_date)
format.html { redirect_to nextpath }
format.json { render json: @costproject }
else
format.html { render action: "edit" }
format.json { render json: @costproject.errors, status: :unprocessable_entity }
end
end
end
如果我停止执行并发出警报,看起来参数已经设置好了。但是,这些值不会保存到数据库中。
如果要将模型保存到数据库,则需要更新模型。您只是在 update
操作中更改参数。
你需要这样的东西:
def update
@cost_project = Costproject.find(params[:id])
@cost_project.update(coststatus_id: 2, submit_date: Date.today) if params[:submit1]
end
.update
将更新并保存数据库中的记录
这似乎有效:
params[:costproject][:coststatus_id] = 2 if params[:submit1]
params[:costproject][:submit_date] = Date.today if params[:submit1]
respond_to do |format|