我已经四处寻找并且无法找到这种机制的解决方案.我想在Rails中正常加载所有页面,但每当我执行ajax请求时,我只想返回没有布局的页面.因此,每当我做一个ajax请求时,我可以?page=true在这些行上附加一个或者某个东西,让Rails只返回没有布局的页面.
这可能吗?有没有更好的方法来做到我错过了?
谢谢你的帮助!
最终解决方案工作代码
在控制器中,您需要做的就是format.html在respond_to块中附加一点逻辑.
show例如,在该方法中
def show
# code beforehand
respond_to do |format|
format.html { render :layout => !request.xhr? }
# other formats
end
end
Run Code Online (Sandbox Code Playgroud)
就是这样!在AJAX请求期间阻止布局!
注意:由于smathy对他的回答的评论,这进一步简化了.我最初有format.html { render :layout => nil if request.xhr? } 这个解决方案同样适用,但smathy的修改使它更简单.
这是一个令人尴尬的初学者问题,但我只是想解决我对Sequelizejs的担忧.我想将每个模型拆分成自己的文件,以保持我的源组织.为了做到这一点,我需要require("sequelize')和var sequelize = new Sequelize('DB-Name', 'DB-User', 'DB-Password');每个文件的开始.
我的问题是,是否会为每个模型创建一个与数据库的新连接,还是会继续重复使用相同的连接?我应该放弃"每个文件一个模型"的整个概念,只创建一个主Models.js文件吗?
我是Node的新手,我仍然习惯于它的惯例.谢谢您的帮助!
我似乎无法在我的服务器上的Docker容器中运行java.即使发布java -version,我也会收到以下错误.
root@86088d679103:/# java -version
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000035ce1000000, 2555904, 1) failed; error='Operation not permitted' (errno=1)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2555904 bytes for committing reserved memory.
# An error report file with more information is saved as:
# //hs_err_pid17.log
Run Code Online (Sandbox Code Playgroud)
据此,java无法为预留内存映射2.5Mb的空间?这似乎不对......
我在最后包含了完整的日志,但为了获得一些额外的信息,我的系统报告了以下内容:
root@86088d679103:/# uname -m
x86_64
root@86088d679103:/# free -mh
total used free shared buffers cached
Mem: 15G 9.7G 5.8G …Run Code Online (Sandbox Code Playgroud) 我是Go的新手,如果有可扩展应用程序的既定设计模式,我很好奇.
例如,在我的源代码中,我有一个扩展目录,我为我的程序放置了不同的特定于应用程序的扩展.我目前按名称单独加载每个主函数.我希望程序在编译时自动包含我的扩展.
为了清楚起见,我不是试图在运行时动态加载扩展.我只想添加一个扩展程序,如下所示:
如果这对Go来说是不可能的,那么我会做出应有的决定,但我只是想有一个更好的方法来做到这一点.
为了更清楚地展示我想要简化的内容,这里是我现在所做的一个例子:
main.go
package main
import (
"github.com/go-martini/martini"
"gopath/project/extensions"
)
func main() {
app := martini.Classic()
// Enable Each Extension
app.Router.Group("/example", extensions.Example)
// app.Router.Group("/example2", extensions.Example2)
// ...
app.Run()
}
Run Code Online (Sandbox Code Playgroud)
扩展/ example.go
package extensions
import (
"github.com/codegangsta/martini-contrib/render"
"github.com/go-martini/martini"
)
func Example(router martini.Router) {
router.Get("", func(r render.Render) {
// respond to query
r.JSON(200, "")
})
}
Run Code Online (Sandbox Code Playgroud) 我是Go的新手,并且无法找到任何关于此的信息,也许此时此刻不可能.
我试图删除或替换多路复用路由(使用http.NewServeMux或gorilla的mux.Router).我的最终目标是能够启用/禁用路由或路由集,而无需重新启动程序.
我可以在处理程序基础上完成此操作,如果该功能被"禁用",则返回404,但我宁愿找到更通用的方法来执行此操作,因为我想为我的应用程序中的每个路由实现它.
或者我会更好地跟踪禁用的url模式并使用一些中间件来阻止处理程序执行?
如果有人能够至少指出我正确的方向,我绝对会发布解决方案的代码示例,假设有一个.谢谢!
我希望这个问题有一个简单的答案.我正在尝试将记录器添加到我的Java应用程序中.我能够完美地格式化日志文件,但在尝试将ConsoleHandler添加到记录器以格式化控制台输出时遇到了问题.
一旦我添加了ConsoleHandler,每个日志消息都不打印三次,两次打印我想要的格式,然后一次使用我不想要的原始格式.
我发布下面的代码,不确定我做错了什么.
任何帮助将不胜感激.
// remove and handlers that will be replaced
Handler[] handlers = logger.getHandlers();
for(Handler handler : handlers)
{
if(handler.getClass() == ConsoleHandler.class || handler.getClass() == FileHandler.class)
logger.removeHandler(handler);
}
// file handler
FileHandler fh = new FileHandler(file.toString());
fh.setFormatter(new MS2Formatter());
logger.addHandler(fh);
// console handler
ConsoleHandler ch = new ConsoleHandler();
ch.setFormatter(new MS2Formatter());
logger.addHandler(ch);
logger.setLevel(Level.INFO);
Run Code Online (Sandbox Code Playgroud)
编辑:答案
只想在这里发布我的最终代码,以帮助任何有类似问题的人.
logger = Logger.getLogger("My Logger");
logger.setUseParentHandlers(false);
// remove and handlers that will be replaced
Handler[] handlers = logger.getHandlers();
for(Handler handler : handlers)
{
if(handler.getClass() == …Run Code Online (Sandbox Code Playgroud) 我正在尝试在充当TCP服务器的Java应用程序和充当客户端的PHP脚本之间的单个端口上建立简单的TCP连接。
我将在下面发布每个代码,但问题是:我可以连接并向Java服务器发送数据。我可以获取该数据并将其打印出来。我的问题出现在尝试将响应发送回php服务器的过程中。
当我注释掉PHP的最后一行“ echo socket_read($ socket,14,PHP_NORMAL_READ);”时 数据可以很好地到达Java服务器。当我重新添加该行时,数据甚至都没有到达Java服务器。
因此,我假设我的问题与我从Java发送数据或尝试从服务器获取PHP数据有关。
这真的让我感到难过,任何帮助将不胜感激!
Java服务器:
protected ServerSocket socket;
protected final int port = 9005;
protected Socket connection;
protected String command = new String();
protected String responseString = new String();
socket = new ServerSocket(port);
while(true)
{
// open socket
connection = socket.accept();
// get input reader
InputStreamReader inputStream = new InputStreamReader(connection.getInputStream());
BufferedReader input = new BufferedReader(inputStream);
// get output handler
DataOutputStream response = new DataOutputStream(connection.getOutputStream());
// get input
command = input.readLine();
// process input
Logger.log("Command: " …Run Code Online (Sandbox Code Playgroud) 我最近一直在深入研究JavaScript以完全理解语言,并且有一些唠叨的问题,我似乎无法找到答案(特别是处理面向对象的编程).
假设以下代码:
function TestObject()
{
this.fA = function()
{
// do stuff
}
this.fB = testB;
function testB()
{
// do stuff
}
}
TestObject.prototype = {
fC : function
{
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud)
功能fA和有fB什么区别?他们的范围和潜在能力是否完全相同?它只是惯例还是技术上更好或更合适的一种方式?
如果在任何给定时间只有一个对象的实例,那么将原型添加一个函数fC甚至是值得的吗?这样做有什么好处吗?原型只在处理对象或继承的许多实例时才真正有用吗?
从技术上讲,什么是以我上面的方式或TestObject.prototype.functionName = function(){}每次调用方式向原型添加方法的"正确"方法?
我希望尽可能保持我的JavaScript代码清晰可读,但我也非常感兴趣的是对象的正确约定在语言中.我来自Java和PHP背景,我试图不对JavaScript如何工作做任何假设,因为我知道它是基于原型的非常不同.
我正在研究golang中基于JSON的通用消息传递协议.我想要做的是BaseMessage拥有一般信息,如Type,timestamp等等.但同时我希望能够为某些类型的数据定义更具体的消息结构.
例如:
type Message struct {
Type string `json:type`
Timestamp string `json:timestamp`
}
type EventMessage struct {
Message
EventType string
EventCreator string
EventData interface{}
}
Run Code Online (Sandbox Code Playgroud)
我有一组处理程序,并确定哪个处理程序应该处理消息我首先将JSON解码为常规Message类型以检查Type字段.对于此示例,我将获得与"事件"消息类型相关联的处理程序.
当我想要EventMessage在结构上断言类型时,我遇到了问题.
下面的代码非常粗糙,但希望它显示了我如何处理消息的一般概念.
type Handler func(msg Message) Message
handlers := make(map[string]Handler)
var msg Message
decoder.Decode(&msg)
handler := handlers[msg.Type]
handler(msg)
Run Code Online (Sandbox Code Playgroud)
我试图使用一个,interface{}但然后JSON解码器只是创建一个地图,然后我不能断言任何类型.我已经找到了可行的解决方法,但它非常难看,可能效率不高,而且很可能容易出错.我想保持简单明了的事情,这样就可以轻松维护这些代码.
是否有一种在Golang中处理通用JSON对象的方法,以便解码的JSON可以是许多结构格式之一?
我也想过在Data interface{}主Message结构中有更多特定信息的想法,但后来我遇到了无法在接口上断言任何类型的相同问题.必须有一种更好的方法来处理我刚才缺少的JSON格式.
这是一个非常基本的红宝石问题.ClassName#message和之间有什么区别ClassName.message?
我正在阅读基本的Ruby指南,我看到这两个引用都使用了很多.似乎主要是在代码ClassName.message中使用但在文档ClassName#message中使用.
是#简单的文档约定?只有.在实际代码中传递消息的工作?或者有什么东西我只是缺少?
Rails的含义是否有所不同?
我为了摆脱输入字段上的突出显示所做的每一次搜索都说使用css:
input:focus {
outline:none;
}
Run Code Online (Sandbox Code Playgroud)
这根本不起作用.我正在使用最新版本的chrome,firefox和safari来测试它.
我也在使用Bootstrap css库,我不确定这是否会导致这种问题.
我试图实现的效果是模拟控制台屏幕中的空白行.我有它的工作和完美的外观,除了inout字段聚焦时的亮点.
任何帮助将不胜感激.
我是Go的新手,所以可能有一个非常简单的解决方法.我在调用数组结构中的接口方法时遇到问题.我认为最好通过一个例子来解释,所以这里是我能够将代码简化为最基本的例子.
package main
import "fmt"
/* Test Types */
type Test interface {
Hello() string
}
type TestRecord struct {
test Test
name string
}
type TestList []TestRecord
/* Other Type */
type Other struct{}
func (o Other) Hello() string {
return "Hello From Other"
}
func main() {
/* Init TestList into t */
t := make(TestList, 1, 100)
/* Create TestRecord and add it to the list */
tr := TestRecord{Other{}, "OtherRecord"}
t = append(t, tr)
/* Loop …Run Code Online (Sandbox Code Playgroud) 我已经看到很多方法来编组/解组只有未导出字段的结构.但是我怎么能用混合领域呢?
给定一个结构:
type Test struct {
fieldA string `json:"fieldA"`
FieldB int `json:"fieldB"`
FieldC string `json:"fieldC"`
}
Run Code Online (Sandbox Code Playgroud)
如何编写MarshalJSON/UnmarshalJSON函数,以便fieldA与FieldB和FieldC一起传输?
以下编译,但在运行时溢出调用堆栈.我的猜测是我递归编组对象,但我不确定在编码时如何保留导出和未导出的字段.
func (t *Test) MarshalJSON() ([]byte, error) {
return json.Marshal(struct {
*Test
FieldA string `json:"fieldA"`
}{
t,
t.fieldA,
})
}
func (t *Test) UnmarshalJSON(b []byte) error {
return json.Unmarshal(b, &t)
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?或者我应该重新考虑我的数据结构,也许只是导出该字段?
注意:我知道我可以手动执行每个字段,但是如果可能的话,我希望避免更新代码更易于管理.
go ×5
java ×3
json ×2
css ×1
docker ×1
formatting ×1
function ×1
gorilla ×1
html ×1
javascript ×1
jvm ×1
logging ×1
marshalling ×1
mmap ×1
node.js ×1
oop ×1
php ×1
prototype ×1
ruby ×1
sequelize.js ×1