控制器:
@events = Event.all
@events.each { |e| e.user_subscribed = "someuser" }
@events.each { |e| puts "error" + e.user_subscribed }
我有attr_accessor :user_subscribed
。但是错误是can't convert nil into String
,因为e.user_subscribed评估为nil。
我在后端使用mongoid。
编辑:这有效,但它只是复制整个数组。
@events = @events.map do |e|
e.user_subscribed = "faaa"
e
end
答案 0 :(得分:2)
如果您没有将@events保存到数据库,则user_subscribed将不会保留,除非您将其保留在内存中:
@events_with_subscription = @events.map { |e| e.user_subscribed = "someuser"; return e }
答案 1 :(得分:1)
根据OP评论编辑。
听起来直接在视图中直接输出Event.user_subscribed(current_user)可能会更好......但是如果你想先加载所有数据,你可以这样做:
@array_of_subscription_results = @Events.map{|e| e.user_subscribed(current_user,some,other,var,required) }
只要user_subscribed返回您感兴趣的值,那就是将加载到@array_of_subscription_results的地图