在 MySQL 中,可以在 SELECT 子句中创建的 GROUP BY 子句中使用别名(参见MySQL 参考)。
我只是想知道为什么不能在 GROUP BY 中创建别名并在 SELECT 中使用它,它遵循 SELECT 语句的执行顺序。
换句话说,为什么以下不合语法?
SELECT region, SUM(population)
FROM population_us_states
GROUP BY
CASE state_name
WHEN 'CT' THEN 'New England'
WHEN 'RI' THEN 'New England'
WHEN 'MA' THEN 'New England'
WHEN 'ME' THEN 'New England'
WHEN 'NH' THEN 'New England'
WHEN 'VT' THEN 'New England'
WHEN 'CA' THEN 'West Coast'
WHEN 'OR' THEN 'West Coast'
WHEN 'WA' THEN 'West Coast'
ELSE 'other' END AS region;
Run Code Online (Sandbox Code Playgroud) 我需要为account资源设计一个表单.在那种形式中,我需要在一个params名为hash的属性中收集一些id作为数组relationships.
所以params[account]POST请求的最终哈希应该是这样的:
{:name => 'somename', :relationships => ["123", "23", "23445"]}
Run Code Online (Sandbox Code Playgroud)
我该如何设计form_for田地?我试过这个,但没有用:
<%= form_for @account do |f| %>
<%= f.text_field :name %>
<% @eligible_parents.each do |p| %>
<%= f.check_box "relationships", nil, :value => p.id %>
<b><%= p.name %></b><br/>
</span>
<% end %>
<%= f.submit "Submit" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
元素@eligible_parents数量每次都不同.
relationships既不是account模型中的关联也不是属性.
我必须使用虚拟属性,但我需要从表单填写一个数组.
请帮忙.我怎样才能做到这一点?
我有一个Html,其中包含:( div A中的多个div).
<div class="a">
<div class="b"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
我的CSS看起来像那样:
.a div {
border: solid;
border-width: thin;
}
.b {
border: none;
border-width: 0px;
border-collapse: collapse;
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,b的值不会覆盖a.但是,如果我只是写一个而不是".div",我将无法获得其他div内部的行为.
我让这个工作的唯一方法是使用"重要!" (即"border:none!important";)但这似乎不够优雅.
我会喜欢任何关于那里发生的事情的想法.
埃胡德.
我正在使用 Devise 和 JWT 来验证我正在编写的项目中的用户。我很难弄清楚如何编写一个有用的测试来期待 JWT response.body(因为每个测试都是加密的)。
我唯一能想到的就是测试它们的结构是否应该是 JWT(一个 3 段,'.'分隔字符串)。
有没有人遇到过测试随机/散列返回并提出更好的解决方案?
describe SessionTokensController, type: :controller do
let(:current_user) { FactoryGirl.create(:user) }
before(:each) do
sign_in current_user
end
describe '#create' do
it 'responds with a JWT' do
post :create
token = JSON.parse(response.body)['token']
expect(token).to be_kind_of(String)
segments = token.split('.')
expect(segments.size).to eql(3)
end
end
end
Run Code Online (Sandbox Code Playgroud) 我在选项卡式活动中使用多个片段来显示json数据.
我想在每个片段收到响应时显示进度条.
private void loadJSON() {
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASEURL)
.addConverterFactory(GsonConverterFactory.create())
.build();
newsAPI = retrofit.create(NewsAPI.class);
Call<JSONResponse> call = newsAPI.topNews("soure", "api-key");
call.enqueue(new Callback<JSONResponse>() {
@Override
public void onResponse(Call<JSONResponse> call, Response<JSONResponse> response) {
Log.v("this", "Yes!");
}
@Override public void onFailure(Call<JSONResponse> call, Throwable t) {
Log.v("this", "No Response!");
}
});
}
Run Code Online (Sandbox Code Playgroud)
我有嵌套属性的问题,我有下一个实体:
class Experience < ActiveRecord::Base
has_many :roles, inverse_of: :experience
end
class Role < ActiveRecord::Base
belongs_to :experience, inverse_of: :roles
end
Run Code Online (Sandbox Code Playgroud)
我有下一组参数:
params = {"end_date"=>"02/01/2012",
"city"=>"Buenos Aires",
"state"=>"",
"country"=>"",
"title"=>nil,
"company"=>"Restorando",
"current"=>nil,
"description"=>nil,
"roles_attributes"=>
[{"id"=>558, "title"=>"System Owner", "start_date"=>"03/01/2000", "end_date"=>"02/01/2001", "description"=>"<p>I did a bunch of stuff</p>", "current"=>false},
{"id"=>561, "title"=>"Test", "description"=>nil, "current"=>nil},
{"id"=>557, "title"=>"Full Stack Developerr", "start_date"=>"01/01/2011", "end_date"=>"02/01/2012", "description"=>"<p>Full Stack Developer description</p>", "current"=>false}],
"resumes_experiences_attributes"=>[{"id"=>384, "resume_id"=>809}, {"id"=>385, "resume_id"=>3199}]}
Run Code Online (Sandbox Code Playgroud)
我想更新一个 Rails 模型。所以我执行:
@experience = Experience.find(some_id)
@experience.update_attributes(params)
Run Code Online (Sandbox Code Playgroud)
这给我返回一个错误
ActiveRecord::RecordNotUnique:PG::UniqueViolation:错误:重复的键值违反了唯一约束“roles_pkey”
如果我看到 Rails 试图更新什么,我会看到下一条sql语句:
UPDATE“角色”SET“start_date”= $1,“end_date”= $2,“current”= …
我是 Rails 5 中的 ActionCable 新手。我正在尝试为我的 Rails 应用程序进行聊天。当我尝试通过控制台发送测试消息App.room.speak('Test!')时,但当我收到错误消息时。
未捕获的 ReferenceError:应用程序未在 :1:1 处定义
房间咖啡
App.room = App.cable.subscriptions.create "RoomChannel",
connected: ->
# Called when the subscription is ready for use on the server
disconnected: ->
# Called when the subscription has been terminated by the server
received: (data) ->
# Called when there's incoming data on the websocket for this channel
$('message').append data
speak: (message)->
@perform 'speak', message: message
Run Code Online (Sandbox Code Playgroud)
房间频道.rb
class RoomChannel < ApplicationCable::Channel
def subscribed
stream_from "room_channel"
end
def …Run Code Online (Sandbox Code Playgroud) 我有我可以使用命令获得的所有计划作业的列表
延迟::工作.all
每个作业都有一个处理程序字段(字符串),其中包含一个“-”分隔的参数。我想找到这个字符串的参数之一。一种方法显然是拆分字符串并提取值,但如果传递的参数列表发生任何更改,则此方法将失败。
下面给出的是我的工作对象之一的处理程序字符串:
"--- !ruby/object:ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper\njob_data:\n job_class: ActionMailer::DeliveryJob\n job_id: 7ce42882-de24-439a-a52a-5681453f4213\n mailers\n参数:\n - 事件通知\n - 提醒_网络研讨会_事件_注册\n - 交付_现在\n - mail@gmail.com\n - yesha\n - 89\n 语言环境::en\n"
我想知道是否有任何方法,我可以在保存作业对象的同时向作业对象发送额外的参数,以便稍后使用,而不是在处理程序字符串中进行搜索。或者,如果不是这样,我可以获得处理程序的参数列表,而不是解析字符串并使用它。
请帮助!
我有一个 Rails 图像标签”
<%= image_tag 'how-it-works.png', {id: 'how-it-works'} %>
Run Code Online (Sandbox Code Playgroud)
我还想添加引导类,img-responsive以便图像保留在其容器内。
一个人会怎样做呢?
我在 Rails 文档上看到了一些选项,但它们似乎都不起作用:
image_tag("icon")
# => <img alt="Icon" src="/assets/icon" />
image_tag("icon.png")
# => <img alt="Icon" src="/assets/icon.png" />
image_tag("icon.png", size: "16x10", alt: "Edit Entry")
# => <img src="/assets/icon.png" width="16" height="10" alt="Edit Entry" />
image_tag("/icons/icon.gif", size: "16")
# => <img src="/icons/icon.gif" width="16" height="16" alt="Icon" />
image_tag("/icons/icon.gif", height: '32', width: '32')
# => <img alt="Icon" height="32" src="/icons/icon.gif" width="32" />
image_tag("/icons/icon.gif", class: "menu_icon")
# => <img alt="Icon" class="menu_icon" src="/icons/icon.gif" />
image_tag("/icons/icon.gif", …Run Code Online (Sandbox Code Playgroud) 我有两个带有enum字段的模型:
class TempAsset < ApplicationRecord
enum state: { running: 0, stopped: 1, terminated: 2 }
end
class AssetCredential < ApplicationRecord
enum map_status: { pending: 0, inprogress: 1, passed: 2, failed: 3 }
end
Run Code Online (Sandbox Code Playgroud)
当我从第一个表中选择列时,它会从枚举中给出正确的值:
TempAsset
.joins('INNER JOIN asset_credentials
ON temp_assets.instance_id = asset_credentials.instance_id')
.pluck(:state)
.uniq
# ["stopped", "running"]
Run Code Online (Sandbox Code Playgroud)
但是,当我从连接表中选择列时,它会给出数字:
TempAsset
.joins('INNER JOIN asset_credentials
ON temp_assets.instance_id = asset_credentials.instance_id')
.pluck(:map_status)
.uniq
# [0, 3, 2, 1]
Run Code Online (Sandbox Code Playgroud)
那么,我应该这样做:
AssetCredential.map_statuses.key(0) => "pending"
AssetCredential.map_statuses.key(1) => "inprogress"
Run Code Online (Sandbox Code Playgroud)
或者有没有更好的方法来做同样的事情?
actioncable ×1
activerecord ×1
android ×1
arguments ×1
border ×1
css ×1
delayed-job ×1
handler ×1
html ×1
inheritance ×1
jwt ×1
mysql ×1
overriding ×1
retrofit2 ×1
rspec ×1
ruby ×1
sql ×1