Rails - 如果没有点表示法,则无法获取嵌套属性

时间:2017-01-06 23:44:56

标签: ruby-on-rails ruby activerecord

我正面临ruby的问题,因为我试图获得这样的嵌套属性:

var obj1 = [{
  abc: 'abc value'
}, {
  def: 'def value'
}];

var obj2 = {
  def: 'new def value'
};

var obj3 = Object.entries(Object.assign({},...obj1, obj2))
           .map(([prop, value]) => ({[prop]:value}));

console.log(
  `obj1:${JSON.stringify(obj1)}`
  , `\nobj2:${JSON.stringify(obj2)}`
  , `\nobj3:${JSON.stringify(obj3)}`
)

我可以使用点表示法获取数据,但我不能使用[]表示法使其工作:

row :ratings do |ratings|
        table_for ratings.list do
          column :promptness do |list|
            table_for rating.list.promptness do
              column :rating
              column :comment
            end
          end
        end
end

这是什么原因?我怎么能最终解决这个问题? 感谢您的帮助

1 个答案:

答案 0 :(得分:1)

你在这里有什么:

table_for rating.list[el] do
如您所知,

无效,因为list未对[]做出回应。

相反,你可以这样做,因为el是一个符号:

table_for rating.list.send(el) do

请参阅What does send() do in Ruby?