2015-08-10 3 views
1

У меня есть модель в рельсах, например post.rb:Rails, определенные поля, которые будут возвращаться из модели

class Post < ActiveRecord::Base 

end 

class CreatePosts < ActiveRecord::Migration 
    def change 
    create_table :posts do |t| 
     t.text :title 
     t.text :answer 
     t.timestamps 
    end 
    end 
end 

Что я хочу сделать, это контроль, какие поля возвращаются по умолчанию, когда я запрос моей модели, поэтому, например, скажем, я хочу вернуть только поле заголовка в каждом запросе, без использования которого выберете. Я прихожу из laravel и там я могу это сделать. Как я могу это сделать в рельсах?

+0

попробовать это: default_scope -> {выберите («your_field_name»)} –

ответ

2

Вы можете использовать ActiveRecorddefault_scope, который будет добавлен со всеми запросами по умолчанию.

class Post < ActiveRecord::Base 
    default_scope { select('id, title') } 
end 
+0

Это не работает, я получаю все поля и идентификатор: нулевой – user233232

+0

@ user233232 если вы хотите идентификатор вместе с заголовком вы можете дать в качестве запятая. т.е. 'default_scope {select ('id, title')}' –

+0

@VishnuAtrai вы должны передать несколько аргументов, т. е. 'select ('id', 'title')' или 'select (: id,: title)' – Stefan

Смежные вопросы