我对Rails还是很陌生,所以希望这不是一个愚蠢的问题.
我有两个模型:用户和家务.用户has_one杂事,Chore属于User
class User < ActiveRecord::Base
attr_accessible :chore_done, :email, :name, :phone
has_one :chore
class Chore < ActiveRecord::Base
attr_accessible :name, :user_id
belongs_to :user
Run Code Online (Sandbox Code Playgroud)
在我的用户索引中,我正在尝试向所有用户显示并显示与他或她相关的杂项.我这样做是通过将User.all传递给视图并使用.each来遍历每个用户:
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.chore.name %></td>
<td><%= user.chore_done? %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
Run Code Online (Sandbox Code Playgroud)
不幸的是,我无法访问Chore的name属性.我收到此错误:
nil的未定义方法`name':NilClass
如果我删除.name属性,它只返回一个指向Chore对象的指针.
我有一种感觉,这与将User.all对象传递给视图然后迭代它有关.只需在控制台中访问特定的User对象(例如User.find(1)),然后访问user.chore.name就可以了.
1.9.3-p194 :045 > user = User.find(4)
User Load (0.2ms) SELECT "users".* FROM "users" WHERE "users"."id" …Run Code Online (Sandbox Code Playgroud) 我一直坚持这个问题一段时间,甚至根据现有的答案不知道该做什么.我一直在统一响应的最后一个JSON条目上得到此错误.
...{"paperCount": 1, "PMIDs": [20626970], "authorA": 79, "authorB": 80},
{"paperCount": 1, "PMIDs": [20492581], "authorA": 81, "authorB": 82},
{"paperCount": 1, "PMIDs": [20492581], "authorA": 81, "authorB": 83},
{"paperCount": 1, "PMIDs": [20492581], "authorA": 81, "authorB": 84},
{"paperCount": 1, "PMIDs": [20492581], "authorA": 82, "authorB": 83},
{"paperCount": 1, "PMIDs": [20492581], "authorA": 82, "authorB": 84},
{"paperCount": 1, "PMIDs": [20492581], "authorA": 83, "authorB": 84}]...
Run Code Online (Sandbox Code Playgroud)
下面的代码用于提取该信息.它在for循环中一直失败......
$.getJSON('/papers.txt', function(response){
var w = 1280,
h = 900,
fill = d3.scale.category10(),
nodes = d3.range(1000).map(Object),
links = d3.range(1000).map(Object);
var index = 0; …Run Code Online (Sandbox Code Playgroud)