code
我想shorten
one line
{/ 1}}
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?
我是否应该坚持上述有效的代码,或者有更好的方法吗?
答案 0 :(得分:1)
为什么需要return
?函数体不包含任何其他内容。如果有,请注意。
def request_invite
render_404 unless request.xhr?
end
主要的问题是你不能在没有分离的情况下在一行中编写这两个命令,它会尝试评估它,但它在语法上是不正确的。
更新:
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
答案 1 :(得分:1)
也许这个:
(render_404; return) unless request.xhr?
答案 2 :(得分:0)
你可以试试这个:
def request_invite
render_404 return unless request.try(:xhr?)
end