草庐IT

if-cases

全部标签

html - 在 ruby​​ on rails if 语句中使用 html 标签

我的应用程序Controller中有一个方法可以检查用户是否在正确的组中以访问某些功能。我的问题是,当用户编辑他们自己的帐户设置时,我不希望他们能够编辑他们的组,除非他们是传输组的一部分。目前我有这个我的方法工作正常,因为它用于检查页面上的权限。如果下拉框对其他组不可见但仅被禁用也可以工作,那将是理想的。上面的代码创建了一个SyntaxError"unexpectedtRPAREN"');@output_buffer.append=(iflogged_in_as_transport?);@output_buffer.safe_concat('如果有人能提供帮助那就太好了。

ruby - Sinatra 模板中的 If 语句

我想仅在特定路线/页面上显示消息。本质上,如果在/route上显示一条消息。我尝试浏览Sinatra文档,但找不到具体的方法。是否有Ruby方法可以实现此目的?编辑:这是我想做的一个例子。get'/'doerb:indexendget'/page1'doerb:page1endget'/page2'doerb:page2end*******************不知道如何使用Ruby/Sinatra定位当前页面并将其构造为if语句。 最佳答案 有几种方法可以解决这个问题(顺便说一句,我将使用Haml,即使您使用了ERB,因为它对我

ruby - config.ru if 生产语句

在我的config.ru中,我想设置一个代码块,该代码块将根据环境运行特定代码。我尝试了一些代码,但没有任何成功。有什么建议吗?ifENV['RAKE_ENV'].to_s.eql?('development')Bundler.require(:default,:development)end 最佳答案 我相信您想检查ENV['RACK_ENV']而不是ENV['RAKE_ENV']。 关于ruby-config.ruif生产语句,我们在StackOverflow上找到一个类似的问题:

ruby - Ruby 中是否有 if defined?(var) && var == x 的快捷方式?

Ruby中是否有一个快捷方式:ifdefined?(var)&&var==x#dosomethingelse#dosomethingend像defined_and_equal(var,x)? 最佳答案 defined_and_equal(var,x)defined?(var)&&var==x||||||您的“快捷方式”具有相同的长度。所以我真的不明白你为什么会喜欢它。不,我不知道这样的方法是否存在。 关于ruby-Ruby中是否有ifdefined?(var)&&var==x的快捷方式?

ruby-on-rails - current_user.present 和 if user_signed_in 有什么区别?

正在设计并想知道两者之间的区别是什么和 最佳答案 不,实际上没有区别。查看user_signed_in?的元编程实现:def#{mapping}_signed_in?!!current_#{mapping}end当针对User模型进行身份验证时,这解析为:defuser_signed_in?!!current_userend注意:如果current_user为nil或false,则!!current_user返回true>。这与present?完全相同 关于ruby-on-rails-c

ruby - 在 Sinatra 1.2.0 和 Ruby 1.9.2 上使用 Case Expression 的 SyntaxError

我正在使用Sinatra1.2.0和Ruby1.9.2(我需要为这个项目使用这个版本的Ruby)但我不知道为什么我一直收到此SyntaxError。在我的index.erb中使用以下内容时,我可以重现此错误:Thecaseis:It'saFOO!It'saBAR!It'ssomethingelse...!错误:SyntaxErrorat//Users/foo/Workspace/sinatra_case_test/views/index.erb:4:syntaxerror,unexpectedtIVAR,expectingkeyword_when;case@status;@_out_b

ruby-on-rails - rails : How can my app tell if it is running in MRI or JRuby?

在previousquestion中,我询问了如何告诉我的Gemfile是采用与JRuby相关的gem还是与MRI相关的gem。我得到的答案是在Gemfile中执行以下操作:platforms:jrubydogem"activerecord-jdbcsqlite3-adapter"endplatforms:mridogem"sqlite3"end显然,Bundler中的platforms()方法知道如何判断我运行的是MRI还是JRuby。如果我正在运行JRuby或MRI,是否有其他方法可以在我的程序中判断? 最佳答案 你能像这样区分

ruby - Emacs ruby​​ 模式缩进自定义 case..when 和 if..else 的赋值?

在Emacs中,使用ruby​​-mode,我找不到阻止这种情况发生的方法:foo=ifsomething?42else7end当我们的内部惯例是:foo=ifsomething?42else7end(同样适用于begin..end和case..when)。此外,虽然这不太麻烦,但我们对case..when的约定是缩进每个when。casewhateverwhenfoo"a"whenbar"b"else"c"end我知道人们通常说您应该将when与case对齐,但这不是我们公司的惯例,所以有人知道如何自定义吗?我几乎找不到针对ruby​​模式的定制。我唯一真正能够自定义的是括号内的缩进

c++ - C++ 编译器可以优化 "if"循环内的 "for"语句吗?

考虑一个这样的例子:if(flag)for(condition)do_something();elsefor(condition)do_something_else();如果flag在for循环内没有改变,这在语义上应该等同于:for(condition)if(flag)do_something();elsedo_something_else();仅在第一种情况下,代码可能会更长(例如,如果使用了多个for循环,或者如果do_something()是一个几乎相同的代码块到do_something_else()),而在第二种情况下,标志会被检查多次。我很好奇当前的C++编译器(最重要的是

c++ - C++ 编译器可以优化 "if"循环内的 "for"语句吗?

考虑一个这样的例子:if(flag)for(condition)do_something();elsefor(condition)do_something_else();如果flag在for循环内没有改变,这在语义上应该等同于:for(condition)if(flag)do_something();elsedo_something_else();仅在第一种情况下,代码可能会更长(例如,如果使用了多个for循环,或者如果do_something()是一个几乎相同的代码块到do_something_else()),而在第二种情况下,标志会被检查多次。我很好奇当前的C++编译器(最重要的是