小编chr*_*.cl的帖子

使用active_model_serializers实现API版本控制的正确方法

我知道已经存在一些问题,而且这是一个关于AMS没有太高效地处理命名空间的问题(这种版本控制方法使用了这个问题),但我想确保我在当前的限制范围内处于正确的轨道.

现在我正在使用Rails 5和AMS 0.10.1,所以我做了以下事情:

# config/initializers/active_model_serializer.rb
ActiveModelSerializers.config.serializer_lookup_enabled = false
Run Code Online (Sandbox Code Playgroud)

禁用默认的序列化程序查找(无论如何都不起作用); 和

# app/controllers/application_controller.rb
class ApplicationController < ActionController::API
  def get_serializer(resource, options = {})
    unless options[:each_serializer] || options[:serializer] then
      serializer = (self.class.name.gsub("Controller","").singularize + "Serializer").constantize
      resource.respond_to?(:to_ary) ? options[:each_serializer] = serializer : options[:serializer] = serializer
    end
    super(resource, options)
  end
end
Run Code Online (Sandbox Code Playgroud)

覆盖默认情况下如何找到序列化程序; 我的控制器和序列化器是这样的:

# app/controllers/api/v2/api_controller.rb
module Api::V2
  class ApiController < ApplicationController
    ...

# app/controllers/api/v2/users_controller.rb
module Api::V2
  class UsersController < ApiController
    ...
Run Code Online (Sandbox Code Playgroud)

# app/serializers/api/v2/user_serializer.rb
module Api::V2
  class UserSerializer < ActiveModel::Serializer
    ...    
Run Code Online (Sandbox Code Playgroud)

现在,类似的东西ActiveModel::Serializer.serializer_for(object) …

api ruby-on-rails rails-api active-model-serializers ruby-on-rails-5

5
推荐指数
2
解决办法
1510
查看次数

从源代码构建Jenkins插件时出现java.nio.file.NoSuchFileException和java.io.EOFException

我想建立Cucumber测试结果插件(0.8.2),我收到以下错误后mvn package:

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] error: java.nio.file.NoSuchFileException: /home/chrisandrew/sources/cucumber-testresult-plugin/target/classes/META-INF/exposed.stapler-beans
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.527s
[INFO] Finished at: Thu Aug 20 17:33:31 BST 2015
[INFO] Final Memory: 27M/92M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5:compile (default-compile) on project cucumber-testresult-plugin: Compilation failure
[ERROR] error: java.nio.file.NoSuchFileException: /home/chrisandrew/sources/cucumber-testresult-plugin/target/classes/META-INF/exposed.stapler-beans
[ERROR] -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5:compile (default-compile) on project cucumber-testresult-plugin: Compilation …
Run Code Online (Sandbox Code Playgroud)

maven jenkins jenkins-plugins

3
推荐指数
1
解决办法
1611
查看次数

Vue中的VueJS 2.0 v模型动态目标

select我的Vue数据中有一个由数组构建的大约10个元素的表单.

选择器数组最初是空的,然后一个AJAX调用填充数组,Vue构建HTML - 我保持简化下面的代码段只是为了演示我遇到的问题 v-model

我想创建一个包含所有选定值的对象,所以我尝试v-model="selected[ selector.name ]"按照下面的示例使用.我希望能够轻松地要求selected.makeselected.fuel

现在,如果selected像这样初始化属性,这是有效的:

selected: { make: 'audi', fuel: 'petrol' }
Run Code Online (Sandbox Code Playgroud)

如果我把它留空,就像在示例中一样{},那么它就不会更新.我不想手动硬编码所有属性selected,我只想在通过AJAX发送的服务器端代码中列出一次

所以我错过了一些完全明显的东西,我应该以不同的方式做这件事吗?

也许一种方法来找到与字段名称匹配的下拉列表并返回值?只是这似乎不是一个非常Vue的事情.

var app = new Vue({
	el: '#example',
	data: {
		selectors: [
			{
				name: 'make',
				options: ['audi','bmw']
			},
			{
				name: 'fuel',
				options: ['petrol','diesel']
			}
		],
		selected: {}
	}
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.3/vue.js"></script>

<div id="example">

<template v-for="selector in selectors">
  <select v-model="selected[ selector.name ]">
    <option v-for="option in selector.options">{{option}}</option>
  </select>
</template>
  
<p> …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js

1
推荐指数
1
解决办法
1556
查看次数