在rails中访问连接表(没有模型的表)

时间:2017-11-21 04:25:44

标签: ruby-on-rails

如何在没有型号名称的帮助下访问数据库表?

例如,如果我们有模型(Post model),

@instance_var=Post.find(params[:id])

如何访问没有模型的数据库表?

3 个答案:

答案 0 :(得分:2)

在Rails中为表创建模型没有任何害处。但是,如果您希望避免使用它,则可以使用原始SQL查询。

sql = "SELECT * from posts where id = #{params[:id}"
result = ActiveRecord::Base.connection.execute(sql)
result.to_a

答案 1 :(得分:2)

  

2.8 Choosing Between has_many :through and has_and_belongs_to_many

     

最简单的经验法则是如果您需要将关系模型作为独立实体,则应设置has_many:through关系。如果您不需要对关系模型执行任何操作,则设置has_and_belongs_to_many关系可能更简单(尽管您需要记住在数据库中创建连接表)。

     

如果您需要在连接模型上进行验证,回调或额外属性,则应使用has_many:through。

如果您使用Ruby on Rails而不是SQL,那么您可以与大多数数据库postgresql,mysql,sqlite等兼容...

您可以轻松地从mysql迁移到postgresql,或者反之亦然。

答案 2 :(得分:0)

您需要运行RAW SQL查询:

sql = "SELECT * from posts WHERE id = 10"
result = ActiveRecord::Base.connection.execute(sql)
result.to_a

你也可以check this