Важной концепцией является то, что вы оцениваете выражение в своем коде Razor. Лучший способ сделать это (например, если вы находитесь в цикле foreach) - использовать универсальный метод.
Синтаксис для вызова универсального метода в Razor:
@(expression)
В этом случае выражение:
User.Identity.IsAuthenticated ? "auth" : "anon"
Следовательно, решение:
@(User.Identity.IsAuthenticated ? "auth" : "anon")
Этот код можно использовать где угодно в Razor, а не только для атрибута html.
См. Комментарий @Kyralessa к краткому справочнику по синтаксису C # Razor (блог Фила Хаака).
Это действительно просто приложение Rails, которое вы хотите развернуть в IIS, или это должен быть JRuby? Если это просто Ruby on Rails, а не JRuby, то вот ваше пошаговое руководство . Но если вы хотите работать с IIS именно с JRuby, не смотрите дальше. Ниже приведены шаги, которые я выполнил; моя среда - IIS7 в Windows 7 RC, Java 1.6.0_13.
http://dist.codehaus.org/jruby/1.3.1/jruby-bin-1.3.1. tar.gz
. C: \ JRuby
. c: \ JRuby \ jruby-1.3.1
. % JRUBY_HOME% \ bin
в путь. Я пройду через следующие шаги с вкраплениями снимков экрана.
Давайте запустим jruby, чтобы убедиться, что это было успешно установлено:
C:\Users\Vinay>jruby -v jruby 1.3.1 (ruby 1.8.6p287) (2009-06-15 2fd6c3d) (Java HotSpot(TM) Client VM 1. 6.0_13) [x86-java]
Пока все в порядке. Давайте использовать JRuby для установки Rails:
C:\Users\Vinay>gem install json-jruby C:\Users\Vinay>gem install rails --no-rdoc JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL Successfully installed activerecord-2.3.3 Successfully installed rack-1.0.0 Successfully installed actionpack-2.3.3 Successfully installed actionmailer-2.3.3 Successfully installed activeresource-2.3.3 Successfully installed rails-2.3.3 6 gems installed Installing ri documentation for activerecord-2.3.3... Installing ri documentation for rack-1.0.0... Installing ri documentation for actionpack-2.3.3... Installing ri documentation for actionmailer-2.3.3... Installing ri documentation for activeresource-2.3.3... Installing ri documentation for rails-2.3.3...
Let ' s создайте приложение Rails с именем jror
:
C:\Users\Vinay\Projects>rails new jror create create app/controllers create app/helpers create app/models create app/views/layouts create config/environments create config/initializers create config/locales create db create doc create lib create lib/tasks create log create public/images create public/javascripts create public/stylesheets create script/performance create test/fixtures create test/functional create test/integration create test/performance create test/unit create vendor create vendor/plugins create tmp/sessions create tmp/sockets create tmp/cache create tmp/pids create Rakefile create README create app/controllers/application_controller.rb create app/helpers/application_helper.rb create config/database.yml create config/routes.rb create config/locales/en.yml create config/initializers/backtrace_silencers.rb create config/initializers/inflections.rb create config/initializers/mime_types.rb create config/initializers/new_rails_defaults.rb create config/initializers/session_store.rb create config/environment.rb create config/boot.rb create config/environments/production.rb create config/environments/development.rb create config/environments/test.rb create script/about create script/console create script/dbconsole create script/destroy create script/generate create script/runner create script/server create script/plugin create script/performance/benchmarker create script/performance/profiler create test/test_helper.rb create test/performance/browsing_test.rb create public/404.html create public/422.html create public/500.html create public/index.html create public/favicon.ico create public/robots.txt create public/images/rails.png create public/javascripts/prototype.js create public/javascripts/effects.js create public/javascripts/dragdrop.js create public/javascripts/controls.js create public/javascripts/application.js create doc/README_FOR_APP create log/server.log create log/production.log create log/development.log create log/test.log
Давайте запустим WEBrick
, чтобы убедиться, что все работает должным образом:
C:\Users\Vinay\Projects\jror>jruby script/server => Booting WEBrick => Rails 2.3.3 application starting on http://0.0.0.0:3000 JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL => Call with -d to detach => Ctrl-C to shutdown server [2009-07-21 17:51:21] INFO WEBrick 1.3.1 [2009-07-21 17:51:21] INFO ruby 1.8.6 (2009-06-15) [java] [2009-07-21 17:51:21] INFO WEBrick::HTTPServer#start: pid=2440 port=3000
Перейдите к http: // localhost: 3000 /
и подтвердите, что ваше приложение Rails появилось.
Конечно, вот оно.
Следующее, что нужно сделать, это настроить механизм, посредством которого выбранные запросы, сделанные в IIS, будут проксироваться в JRuby. Для этого необходим переписчик URL / обратный прокси. Для этого я использовал ISAPI Rewrite 3 . Вы можете использовать другой инструмент (например, Microsoft ISA). ISAPI Rewrite 3 стоит 99 долларов за сервер и поставляется с 45-дневным пробным периодом.
Для ISAPI Rewrite 3 я установил файл конфигурации httpd.conf
следующим образом:
RewriteEngine on RewriteBase / RewriteLog "C:\temp\rewrite.log" RewriteLogLevel 9 RewriteProxy jror/(.*) http://localhost:3000/$1
Это прокси URL-адреса от
http://localhost/jror/abc123
до
http://localhost:3000/abc123
Итак, теперь мы можем перейти к http: // localhost / jror /
и просмотрите запрос, обслуживаемый JRuby, но через IIS:
И угадайте, что: no wars ! Любые изменения в вашем приложении Rails должны происходить напрямую.
Вот скриншот моей консоли Firebug, на которой показаны заголовки ответов для этой страницы:
Конечно, это скорее установка для разработки, чем для производства, но для производственного использования вам, вероятно, потребуется использовать готовый к производству сервер приложений, такой как Glassfish, что повлечет за собой использование этих надоедливых войн; -)
Если и когда вы действительно захотите развернуть сервер приложений Java с помощью войн, вы можете использовать Warbler для упрощения упаковки вашего приложения в войну.
Для работы на Glassfish V3 требуются некоторые дополнительные действия. Самый быстрый способ развернуть и запустить ваши приложения Rails - использовать гем GlassFish, который состоит только из ядра GlassFish v3 ( Grizzly
) и некоторых утилит, что дает минимальную настройку. Давайте установим гем:
C:\Users\Vinay\Projects\jror>gem install glassfish JRuby limited openssl loaded. gem install jruby-openssl for full support. http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL Successfully installed glassfish-0.9.5-universal-java 1 gem installed Installing ri documentation for glassfish-0.9.5-universal-java... Installing RDoc documentation for glassfish-0.9.5-universal-java...
Запустите приложение Rails на Glassfish:
C:\Users\Vinay\Projects>glassfish jror Starting GlassFish server at: 192.168.0.17:3000 in development environment... Writing log messages to: jror/log/development.log. Press Ctrl+C to stop.
Как видите, вы работаете на Glassfish, но войны по-прежнему не требуются! На стороне IIS не требуется никаких изменений, кроме (в httpd.conf
в моей настройке) изменения прокси-сервера, чтобы он указывал на IP-адрес и порт, используемые сервером Glassfish. Если вы хотите сделать все возможное и установить полный сервер Glassfish и запускать на нем приложения Rails, вы также можете следовать этим инструкциям от команды Glassfish. Они охватывают установку и запуск Glassfish, сервера, развертывание и удаление приложений Rails, а также запуск приложений в производственном режиме.
Здесь '
Сначала необходимо установить Tomcat. См. Это руководство для настройки Tomcat вместе с IIS.
С JRuby вы собираетесь создавать файлы WAR. Просто поместите их в папку webapps Tomcat, и все готово.
Обновление: Хорошо, вам нужно интегрировать две технологии, которые не предназначены для совместного использования: IIS и JRuby. Хорошо то, что JRuby - это и Java, и Ruby, и вы можете использовать лучшее из обоих миров. Ruby более продуктивен и интересен для программирования, но Java лучше для развертывания (особенно когда это необходимо с IIS). Так что мой совет все еще актуален. Создайте файл войны, установите Tomcat и разверните там файл войны. Развернуть файл war так же просто, как скопировать его в папку webapps. Вот шаги, которые вам необходимо выполнить:
. Если вы по-прежнему не хотите использовать файлы WAR, посмотрите это место в блоге . В нем описывается, как можно запустить RoR с IIS. Я считаю, что для JRuby процедура будет такой же. В любом случае, подход CGI - единственный способ избежать файлов WAR.
Я считаю, что для JRuby процедура будет такой же. В любом случае, подход CGI - единственный способ избежать файлов WAR. Я считаю, что для JRuby процедура будет такой же. В любом случае, подход CGI - единственный способ избежать файлов WAR.