Rails:覆盖params中的模型名称

时间:2013-03-12 06:25:15

标签: ruby-on-rails ruby ruby-on-rails-3 activemodel

我有以下型号:

class Action < ActiveRecord::Base
  # model code stuff
end

在控制器中,我可以做类似的事情:

class ActionsController < ApplicationController
  # super simple update
  def update
    @action = Action.find(params[:id])
    @action.update_attributes(params[:action])
  end
end

是否可以在params数组中使用'something_action'来表示我的Action模型,而无需重命名模型本身?即所以我可以像那样检索它:

@action.update_attributes(params[:something_action])

任何帮助都会受到赞赏吗?

2 个答案:

答案 0 :(得分:3)

在您的form_for中使用:as =&gt; :some_other_params_name

form_for(@action, :as => :different

答案 1 :(得分:1)

如果您使用的是form_for,则可以将其更改为

form_for :something_action, @action do |f|

所以它使用:something_action作为参数的名称