我的第一个Ruby on Rails应用程序有点问题。
我有3个表(软件,用户和库),用户可以关注软件并在其库中查看其后续内容。但我想在他的图书馆中看到没有后续内容。
我没有问题看到以下但是当我想看到只有USER没有跟随的软件时,我不能这样做......
Software.left_outer_joins(:libraries).where(libraries: {software_id: nil})
此代码向我展示了所有未遵循的软件,但我需要BY USER提供此信息。
此节目遵循软件
@library_softwares = current_user.library_additions
使用index.html
<% if @library_softwares.exists? %>
...
<%end>
你知道吗?
抱歉我的英文 THX
编辑: 我想达到这个结果:
@library_softwares = current_user.library_additions
@software = Software.all
@result = @software - @library_softwares
答案 0 :(得分:0)
我希望我已经理解了你想要的东西,将软件信息保存在变量中
$websites = Website::select('name', 'id')->
with(
array(
'validClickSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'facebookSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'googleSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'yahooSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'campaigns' => function( $query ) {
$query->where( 'user_id', '=', 2 )->with(
array(
'validClickSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'facebookSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'googleSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'yahooSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'traffic_source',
'groups' => function( $query ) {
$query->with(
array(
'validClickSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'facebookSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'googleSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'yahooSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'keywords' => function( $query ) {
$query->with(
array(
'validClickSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
},
'sourceSums' => function( $query ) {
$query->where( 'user_id', '=', 2 );
}
)
);
}
)
);
}
)
);
}
)
)->get();
如果您在用户和软件之间有关系,只需通过@softwares数组
即可获得用户信息@softwares = Software.left_outer_joins(:libraries).where(libraries: {software_id: nil})