0

code私がしようとしshortenていることone line

            if !request.xhr?
                    render_404
                    return
            end

この関数から

def request_invite
    render_404 unless request.xhr?

        @invitation = Invite.new(params[:invite])

        if @invitation.save
            @return = { :error => false, :response => "OK" }
        else
            @return = { :error => true, :response => @invitation.errors.full_messages.join("<br />") } 
        end

        render :json => ActiveSupport::JSON.encode( @return )

end

私は試した

            render_404 return unless request.xhr?

しかし、私は得る:

invites_controller.rb:4: void value expressio render_404 return unless request.xhr?

動作する上記のコードを使用する必要がありますか、それともこれを行うためのより良い方法がありますか?

4

3 に答える 3

1

なぜあなたは必要returnですか?関数本体には他に何も含まれていません。もしそうなら、それに注意してください。

def request_invite
   render_404 unless request.xhr?
end

主な問題は、2つのコマンドを分離せずに1行に記述できないことです。それを評価しようとしますが、構文的には正しくありません。

アップデート:

def request_invite
    unless request.xhr? then render_404; return; end

    @invitation = Invite.new(params[:invite])

    if @invitation.save
        @return = { :error => false, :response => "OK" }
    else
        @return = { :error => true, :response => @invitation.errors.full_messages.join("<br />") } 
    end

    render :json => ActiveSupport::JSON.encode( @return )

end
于 2012-07-25T09:37:37.953 に答える
1

多分これ:

(render_404; return) unless request.xhr?
于 2012-07-25T10:36:23.077 に答える
0

あなたはこれを試すことができます:

def request_invite
  render_404 return unless request.try(:xhr?)
end
于 2012-07-25T09:35:50.673 に答える