

今ツイッターのようなWEBサイトを作っています。  
他人のGithubを参照しているのですが”友達をみつける”事に機能するfriends
findのindex.html.erbに理解できないコードが出てきました。

[code]

    <%= render(@users) || "Couldn't Find Friends at the current moment" %>
    
[/code]

と

[code]

    <%= render 'partials/load_more', items: @users %>
    
[/code]

の部分です。

[code]

     <%= render(@users) || "Couldn't Find Friends at the current moment" %>の方で、render(@users)と@usersが()でくくられているのはなぜでしょうか？これは引数という事でしょうか？また||は何を意味するのでしょうか？
    
     <%= render 'partials/load_more', items: @users %>の方では
    
[/code]

'partials/load_more'はパーシャルメソットを呼び出しているという事でしょうか？それともこれはメッセージということなのでしょうか？

お願いいたします。  
ちなみに、index.html.erbの全体は

[code]

    <div class="tw-form row">
      <div class="col-lg-6 col-lg-offset-3">
        <div id="find_friends" class="well">
          <h4><b>Find Friends</b></h4>
          <div class="row">
            <div class="col-lg-10 col-lg-offset-1">
              <%= render(@users) || "Couldn't Find Friends at the current moment" %>
            </div>
          </div>
        </div>
        <div id="load-more">
          <%= render 'partials/load_more', items: @users %>
        </div>
      </div>
    </div>
    
[/code]

のようになっていて、  
findfriendsのcontrollerは

[code]

    class FindFriendsController < ApplicationController
    
      before_action :authenticate_user!
    
      def index
        @users = User.where("id not in (?) AND id != ?", current_user.friend_ids, current_user).paginate(page: params[:page])
        respond_to do |format|
          format.js
          format.html
        end
      end
    end
    
[/code]

のようになっています。


CC BY-SA 3.0
2016-03-31T06:55:52.330
23646
2016-03-31T07:42:32.570
14754
question
ruby-on-rails
renderメソットのコードが理解できない


### 前者について

`@users`をRailsが勝手に`_user.html.erb`の繰り返しとして展開してくれます。  
`||`を続ける書き方は初めて見ましたが`@users`が0件の場合に出力されるものと思います。

下記URLを見ていただければ理解できるかと思います。  
<http://railstutorial.jp/chapters/updating_and_deleting_users?version=4.2#sec-
partial_refactoring>

### 後者について

`app/views/partials/_load_more.html.erb`を描画(render)しています。  
同時に`items`という名前の引数に`@users`を渡しているので、`_load_more.html.erb`内で`items`という変数を使うことが出来ます。


CC BY-SA 3.0
2016-03-31T07:42:32.570
23653
2016-03-31T07:42:32.570
4850
23646
answer