ruby-on-rails - 具有自定义嵌套属性名称的 Rails 4 强参数

标签 ruby-on-rails json strong-parameters

我想更改强参数中的属性名称,使其最后没有“_attributes”。

我有:

params.require(:setting).permit(:recording,
                               :special_settings_attributes => [:orientation])

我正在测试它:

  describe "Settings Creation" do

    context 'new setting success' do
      before do
        a = post :create, format: :json, :setting => {
          :recording => "recorded",
          :special_settings_attributes => [:orientation => "left"]
        }

      end

      it 'creates a new setting' do
        expect(Setting.last.special_settings.last.orientation).to eq("left")
      end
    end
  end

end

我要

params.require(:setting).permit(:recording,
                               :special_settings => [:orientation])

我当然尝试过重命名,但是没有创建 SpecialSetting 模型..

最佳答案

只需在您的任何操作调用/使用它之前更改您的params:

before_action do
  params[:special_settings_attributes] ||= params.delete :special_settings
end

关于ruby-on-rails - 具有自定义嵌套属性名称的 Rails 4 强参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30516541/

相关文章:

javascript - 在开始 Ember.js 时,Rails 或服务器端开发人员应该进行哪些思维范式转变?

ruby-on-rails - Errno::EACCES:运行rake test:models时,权限被拒绝@ unlink_internal

ruby-on-rails - 在特定 Controller 方法上切换 "ActionController::Parameters.action_on_unpermitted_parameters = :raise"?

ruby-on-rails - Rails 5 ActionCable WebSockets 未返回状态为 101 升级响应的升级 header

ruby-on-rails - 事件存储 - 多项服务 - 直接上传未按预期工作

javascript - Django json 单引号和双引号?

c# - JSON调用C#类方法

mysql - 将 JSON 数据存储在 MySQL 表中

ruby-on-rails - Rails Strong Parameters - 如果我的字段之一是可选的怎么办?

ruby-on-rails - Rails 3.2.8 中的强参数