我有一个对象列表,测试,其中包含问题和奖金问题,每个问题都有一个主题模型.我试图将所有这些包含在JSON API中,但我不断收到奇怪的难以理解的语法错误消息.我可以使用问题和主题或奖励问题和主题,但不是两者.这就是我现在拥有的:
render json: tests.as_json(:include => {:questions =>{:include => {:subject}},:bonuses => {:include => {:subject}}})
Run Code Online (Sandbox Code Playgroud)
我得到的错误信息是
/app/controllers/test_controller.rb:49:语法错误,意外'}',期待=> ... ssups => {:include => {:subject}},:bonuses => {:include => {: ...... ^ /app/controllers/question_set_controller.rb:49:语法错误,意想不到的 '}',期望=> ...采用=> {:包括=> {:受试者}}})... ^ /app/controllers/question_set_controller.rb:76:语法错误,意外的输入结束,期待keyword_end
提前致谢.
这是我的C代码:
#include <stdio.h>
void sum();
int newAlphabet;
int main(void)
{
sum();
printf("%d\n",newAlphabet);
}
Run Code Online (Sandbox Code Playgroud)
这是我的汇编程序代码:
.globl _sum
_sum:
movq $1, %rax
movq %rax, _newAlphabet
ret
Run Code Online (Sandbox Code Playgroud)
我正在尝试从我的main函数调用sum函数来设置newAlphabet
等于1,但是当我编译它(gcc -o test assembler.c assembler.s
在64位OSX笔记本电脑上编译)时,我得到以下错误:
32-bit absolute addressing is not supported for x86-64 cannot do signed 4 byte relocation both caused by the line "movq %rax, _newAlphabet"
我确定我犯的是一个非常基本的错误.有人可以帮忙吗?提前致谢.
编辑:
以下是C代码转换为汇编程序后的相关部分:
.comm _newAlphabet,4,2
...
movq _newAlphabet@GOTPCREL(%rip), %rax
Run Code Online (Sandbox Code Playgroud)