Are there any rationalies to make queries obtained by joining scope to be readonly? I read some old posts (pre-rails3) that joins adds additional columns to record so that ActiveRecord doesn't know how to update that fields, but actually I don't see that fields. For example I write model class Order < ActiveRecord::Base has_and_belongs_to_many :executors, class_name: 'Specialist', join_table: 'order_executors' scope :by_executor, ->(executor_id) { joins(:executors).where(specialists: {id: executor_id} ) } end
and make query Order.by_executor(1) so that I get: Order Load (2.0ms) SELECT "orders".* FROM "orders" INNER JOIN "order_executors" ON "order_executors"."order_id" = "orders"."id" INNER JOIN "specialists" ON "specialists"."id" = "order_executors"."specialist_id" WHERE "specialists"."id" = 1 => [#<Order id: 20, orderable_id: 11, orderable_type: "PlanDevelopment", client_id: 1, completion_status: "finished", created_at: "2013-05-13 20:48:19", updated_at: "2013-05-14 00:36:38", price: #<BigDecimal:67e5898,'0.14E2',9(36)>>] I see no additional columns but Order.by_executor(1).first.readonly? is true. Is that necessary? p.s. Yes I know that I can set readonly(false) or explicitly specify select clause - so that records won't become readonly. But I want to understand why this blocking behavior is necessary (if it is still true) and what damage will be possible without readonly mark? Also I don't understand, how can I shot myself if I explicitly set readonly(false). -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/8a6c9dd6-526f-4b49-b52a-d96f7edb431e%40googlegroups.com?hl=en-US. For more options, visit https://groups.google.com/groups/opt_out.