Compare commits
33 Commits
Author | SHA1 | Date |
---|---|---|
lovelyzhang | 90385bafcf | |
lovelyzhang | 6904dce21e | |
lovelyzhang | dc6569c4dd | |
lovelyzhang | 790ac40def | |
lovelyzhang | 49138c748b | |
lovelyzhang | 9dad27c6da | |
lovelyzhang | c29cd77767 | |
lovelyzhang | a4b1ac9448 | |
lovelyzhang | 45c05a4881 | |
lovelyzhang | b601bcf6f1 | |
lovelyzhang | 143e384838 | |
lovelyzhang | 9bf238a96e | |
lovelyzhang | d20cb8ec83 | |
lovelyzhang | 1746c9dde7 | |
lovelyzhang | 92821cfd87 | |
lovelyzhang | 2c21dc9142 | |
lovelyzhang | b18ed5c4e0 | |
lovelyzhang | 40f8bfc049 | |
lovelyzhang | face9b417f | |
lovelyzhang | af26c41a7d | |
lovelyzhang | 4a24c82a0e | |
lovelyzhang | 11410f9b86 | |
lovelyzhang | b42036399e | |
lovelyzhang | 910246f78d | |
lovelyzhang | 25c738414d | |
lovelyzhang | 962900f274 | |
lovelyzhang | 0b5691a99b | |
lovelyzhang | 701a151602 | |
lovelyzhang | d35c37f7dd | |
lovelyzhang | 5d2d576cdf | |
lovelyzhang | 52d6b1bf8f | |
lovelyzhang | 0c0f725ec6 | |
lovelyzhang | 9b4215db04 |
|
@ -51,8 +51,9 @@ build-iPhoneSimulator/
|
||||||
.rvmrc
|
.rvmrc
|
||||||
|
|
||||||
# JetBrain的忽略文件
|
# JetBrain的忽略文件
|
||||||
/.idea/*
|
.idea/*
|
||||||
public/data/*
|
public/data/*
|
||||||
|
public/userpics/*
|
||||||
|
|
||||||
# rails的忽略文件
|
# rails的忽略文件
|
||||||
|
|
||||||
|
@ -100,3 +101,9 @@ bower.json
|
||||||
# Ignore Byebug command history file.
|
# Ignore Byebug command history file.
|
||||||
.byebug_history
|
.byebug_history
|
||||||
|
|
||||||
|
db/*.sqlite3
|
||||||
|
logs.txt
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Settings><!--This file was automatically generated by Ruby plugin.
|
|
||||||
You are allowed to:
|
|
||||||
1. Reorder generators
|
|
||||||
2. Remove generators
|
|
||||||
3. Add installed generators
|
|
||||||
To add new installed generators automatically delete this file and reload the project.
|
|
||||||
--><GeneratorsGroup><Generator name="assets" /><Generator name="channel" /><Generator name="coffee:assets" /><Generator name="controller" /><Generator name="generator" /><Generator name="helper" /><Generator name="integration_test" /><Generator name="jbuilder" /><Generator name="job" /><Generator name="js:assets" /><Generator name="mailer" /><Generator name="migration" /><Generator name="model" /><Generator name="resource" /><Generator name="scaffold" /><Generator name="scaffold_controller" /><Generator name="task" /><Generator name="test_unit:generator" /><Generator name="test_unit:plugin" /></GeneratorsGroup></Settings>
|
|
File diff suppressed because one or more lines are too long
194
.idea/guoren.iml
194
.idea/guoren.iml
|
@ -1,194 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module type="RUBY_MODULE" version="4">
|
|
||||||
<component name="FacetManager">
|
|
||||||
<facet type="RailsFacetType" name="Ruby on Rails">
|
|
||||||
<configuration>
|
|
||||||
<RAILS_FACET_CONFIG_ID NAME="RAILS_FACET_SUPPORT_REMOVED" VALUE="false" />
|
|
||||||
<RAILS_FACET_CONFIG_ID NAME="RAILS_TESTS_SOURCES_PATCHED" VALUE="true" />
|
|
||||||
<RAILS_FACET_CONFIG_ID NAME="RAILS_FACET_APPLICATION_ROOT" VALUE="$MODULE_DIR$" />
|
|
||||||
</configuration>
|
|
||||||
</facet>
|
|
||||||
</component>
|
|
||||||
<component name="ModuleRunConfigurationManager">
|
|
||||||
<configuration default="false" name="test: guoren" type="RakeRunConfigurationType" factoryName="Rake">
|
|
||||||
<module name="guoren" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs>
|
|
||||||
<env name="RAILS_ENV" value="test" />
|
|
||||||
</envs>
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_NAME" VALUE="test" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ARGS" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ATTACHED_TEST_FRAMEWORKS" VALUE=":test_unit " />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_TRACE" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_DRYRUN" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_PREREQS" VALUE="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="false" name="spec: guoren" type="RakeRunConfigurationType" factoryName="Rake">
|
|
||||||
<module name="guoren" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_NAME" VALUE="spec" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ARGS" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ATTACHED_TEST_FRAMEWORKS" VALUE=":rspec " />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_TRACE" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_DRYRUN" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_PREREQS" VALUE="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="false" name="Production: guoren" type="RailsRunConfigurationType" factoryName="Rails">
|
|
||||||
<predefined_log_file id="RUBY_RAILS_SERVER" enabled="true" />
|
|
||||||
<module name="guoren" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SCRIPT_ARGS" VALUE="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="PORT" VALUE="3000" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="IP" VALUE="0.0.0.0" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="DUMMY_APP" VALUE="test/dummy" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="Default" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ENVIRONMENT_TYPE" VALUE="production" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="false" name="Development: guoren" type="RailsRunConfigurationType" factoryName="Rails">
|
|
||||||
<predefined_log_file id="RUBY_RAILS_SERVER" enabled="true" />
|
|
||||||
<module name="guoren" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SCRIPT_ARGS" VALUE="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="PORT" VALUE="3000" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="IP" VALUE="0.0.0.0" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="DUMMY_APP" VALUE="test/dummy" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="Default" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ENVIRONMENT_TYPE" VALUE="development" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
||||||
<component name="NewModuleRootManager">
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/test" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/.bundle" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/components" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/public/system" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/vendor/bundle" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="actioncable (v5.0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="actionmailer (v5.0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="actionpack (v5.0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="actionview (v5.0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="activejob (v5.0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="activemodel (v5.0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="activerecord (v5.0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="activesupport (v5.0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="arel (v7.1.4, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="bcrypt (v3.1.11, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="bcrypt-ruby (v3.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="builder (v3.2.2, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.13.6, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="byebug (v9.0.6, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="coffee-rails (v4.2.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="coffee-script (v2.4.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="coffee-script-source (v1.11.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="concurrent-ruby (v1.0.2, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="debug_inspector (v0.0.2, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="erubis (v2.7.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="execjs (v2.7.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="ffi (v1.9.14, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="globalid (v0.3.7, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="i18n (v0.7.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="jbuilder (v2.6.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="jquery-rails (v4.2.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="listen (v3.0.8, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="loofah (v2.0.3, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="mail (v2.6.4, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="method_source (v0.8.2, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="mime-types (v3.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="mime-types-data (v3.2016.0521, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="mini_portile2 (v2.1.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.9.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="multi_json (v1.12.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="nio4r (v1.2.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="nokogiri (v1.6.8.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="puma (v3.6.2, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rack (v2.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rack-test (v0.6.3, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rails (v5.0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rails-dom-testing (v2.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rails-html-sanitizer (v1.0.3, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="railties (v5.0.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rake (v11.3.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rb-fsevent (v0.9.8, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="rb-inotify (v0.9.7, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="sass (v3.4.22, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="sass-rails (v5.0.6, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="spring (v2.0.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="spring-watcher-listen (v2.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="sprockets (v3.7.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="sprockets-rails (v3.2.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="sqlite3 (v1.3.12, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="thor (v0.19.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.5, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="tilt (v2.0.5, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="turbolinks (v5.0.1, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="turbolinks-source (v5.0.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="tzinfo (v1.2.2, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="uglifier (v3.0.3, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="web-console (v3.4.0, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="websocket-driver (v0.6.4, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="websocket-extensions (v0.1.2, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="will_paginate (v3.1.5, rbenv: 2.3.1) [gem]" level="application" />
|
|
||||||
</component>
|
|
||||||
<component name="RModuleSettingsStorage">
|
|
||||||
<LOAD_PATH number="0" />
|
|
||||||
<I18N_FOLDERS number="1" string0="$MODULE_DIR$/config/locales" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
|
@ -1,4 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectRootManager" version="2" project-jdk-name="rbenv: 2.3.1" project-jdk-type="RUBY_SDK" />
|
|
||||||
</project>
|
|
|
@ -1,27 +0,0 @@
|
||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="Development: guoren" type="RailsRunConfigurationType" factoryName="Rails">
|
|
||||||
<predefined_log_file id="RUBY_RAILS_SERVER" enabled="true" />
|
|
||||||
<module name="guoren" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SCRIPT_ARGS" VALUE="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="PORT" VALUE="3000" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="IP" VALUE="0.0.0.0" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="DUMMY_APP" VALUE="test/dummy" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="Default" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ENVIRONMENT_TYPE" VALUE="development" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
|
@ -1,27 +0,0 @@
|
||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="Production: guoren" type="RailsRunConfigurationType" factoryName="Rails">
|
|
||||||
<predefined_log_file id="RUBY_RAILS_SERVER" enabled="true" />
|
|
||||||
<module name="guoren" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SCRIPT_ARGS" VALUE="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="PORT" VALUE="3000" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="IP" VALUE="0.0.0.0" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="DUMMY_APP" VALUE="test/dummy" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="Default" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ENVIRONMENT_TYPE" VALUE="production" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
|
@ -1,25 +0,0 @@
|
||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="spec: guoren" type="RakeRunConfigurationType" factoryName="Rake">
|
|
||||||
<module name="guoren" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_NAME" VALUE="spec" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ARGS" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ATTACHED_TEST_FRAMEWORKS" VALUE=":rspec " />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_TRACE" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_DRYRUN" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_PREREQS" VALUE="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
|
@ -1,27 +0,0 @@
|
||||||
<component name="ProjectRunConfigurationManager">
|
|
||||||
<configuration default="false" name="test: guoren" type="RakeRunConfigurationType" factoryName="Rake">
|
|
||||||
<module name="guoren" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs>
|
|
||||||
<env name="RAILS_ENV" value="test" />
|
|
||||||
</envs>
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_NAME" VALUE="test" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ARGS" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ATTACHED_TEST_FRAMEWORKS" VALUE=":test_unit " />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_TRACE" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_DRYRUN" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_PREREQS" VALUE="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
</component>
|
|
|
@ -1,955 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ChangeListManager">
|
|
||||||
<list default="true" id="585b6f0a-0d20-4a3c-825b-5f85848cbf40" name="Default" comment="">
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/guoren.iml" afterPath="$PROJECT_DIR$/.idea/guoren.iml" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Gemfile" afterPath="$PROJECT_DIR$/Gemfile" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/Gemfile.lock" afterPath="$PROJECT_DIR$/Gemfile.lock" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/controllers/main_controller.rb" afterPath="$PROJECT_DIR$/app/controllers/main_controller.rb" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/helpers/main_helper.rb" afterPath="$PROJECT_DIR$/app/helpers/main_helper.rb" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/layouts/_nav.html.erb" afterPath="$PROJECT_DIR$/app/views/layouts/_nav.html.erb" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/app/views/main/main.html.erb" afterPath="$PROJECT_DIR$/app/views/main/main.html.erb" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/public/stylesheets/mystyle.css" afterPath="$PROJECT_DIR$/public/stylesheets/mystyle.css" />
|
|
||||||
</list>
|
|
||||||
<ignored path="guoren.iws" />
|
|
||||||
<ignored path=".idea/workspace.xml" />
|
|
||||||
<ignored path="$PROJECT_DIR$/.bundle/" />
|
|
||||||
<ignored path="$PROJECT_DIR$/components/" />
|
|
||||||
<ignored path="$PROJECT_DIR$/public/system/" />
|
|
||||||
<ignored path="$PROJECT_DIR$/tmp/" />
|
|
||||||
<ignored path="$PROJECT_DIR$/vendor/bundle/" />
|
|
||||||
<ignored path=".idea/dataSources.local.xml" />
|
|
||||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
|
||||||
<option name="TRACKING_ENABLED" value="true" />
|
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
|
||||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
|
||||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
|
||||||
</component>
|
|
||||||
<component name="CoverageDataManager">
|
|
||||||
<SUITE FILE_PATH="coverage/guoren@Development__guoren.coverage" NAME="Development: guoren Coverage Results" MODIFIED="1482735933552" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="rcov" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$" MODULE_NAME="guoren" />
|
|
||||||
</component>
|
|
||||||
<component name="CreatePatchCommitExecutor">
|
|
||||||
<option name="PATCH_PATH" value="" />
|
|
||||||
</component>
|
|
||||||
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
|
|
||||||
<component name="FavoritesManager">
|
|
||||||
<favorites_list name="guoren" />
|
|
||||||
</component>
|
|
||||||
<component name="FileEditorManager">
|
|
||||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
|
||||||
<file leaf-file-name="Gemfile" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/Gemfile">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="303">
|
|
||||||
<caret line="34" column="0" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="main.html.erb" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/main/main.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="629">
|
|
||||||
<caret line="91" column="16" selection-start-line="91" selection-start-column="16" selection-end-line="91" selection-end-column="16" />
|
|
||||||
<folding>
|
|
||||||
<element signature="n#div#0;n#div#0;n#div#0;n#div#0;n#!!top" expanded="false" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="action_view.rb" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/will_paginate-3.1.5/lib/will_paginate/view_helpers/action_view.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="425">
|
|
||||||
<caret line="25" column="8" selection-start-line="25" selection-start-column="8" selection-end-line="25" selection-end-column="8" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="view_helpers.rb" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/will_paginate-3.1.5/lib/will_paginate/view_helpers.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-241">
|
|
||||||
<caret line="76" column="95" selection-start-line="76" selection-start-column="87" selection-end-line="76" selection-end-column="95" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="micro_posts_helper.rb" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/helpers/micro_posts_helper.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="408">
|
|
||||||
<caret line="24" column="0" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="_nav.html.erb" pinned="false" current-in-tab="true">
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/layouts/_nav.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="374">
|
|
||||||
<caret line="37" column="17" selection-start-line="37" selection-start-column="17" selection-end-line="37" selection-end-column="17" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="main_controller.rb" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/controllers/main_controller.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="357">
|
|
||||||
<caret line="21" column="5" selection-start-line="21" selection-start-column="5" selection-end-line="21" selection-end-column="5" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="main_helper.rb" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/helpers/main_helper.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="643">
|
|
||||||
<caret line="60" column="0" selection-start-line="60" selection-start-column="0" selection-end-line="60" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="instrumentation.rb" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_controller/metal/instrumentation.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="322">
|
|
||||||
<caret line="45" column="0" selection-start-line="45" selection-start-column="0" selection-end-line="45" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="mystyle.css" pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/public/stylesheets/mystyle.css">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="651">
|
|
||||||
<caret line="139" column="1" selection-start-line="139" selection-start-column="1" selection-end-line="139" selection-end-column="1" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
</leaf>
|
|
||||||
</component>
|
|
||||||
<component name="Git.Settings">
|
|
||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
|
||||||
</component>
|
|
||||||
<component name="IdeDocumentHistory">
|
|
||||||
<option name="CHANGED_PATHS">
|
|
||||||
<list>
|
|
||||||
<option value="$PROJECT_DIR$/tmp/pids/server.pid" />
|
|
||||||
<option value="$PROJECT_DIR$/log/development.log" />
|
|
||||||
<option value="$PROJECT_DIR$/app/views/chat/index.html.erb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/controllers/application_controller.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/controllers/comments_controller.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/controllers/users_controller.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/helpers/chat_helper.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/helpers/application_helper.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/helpers/users_helper.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/controllers/micro_posts_controller.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/helpers/micro_posts_helper.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/views/micro_posts/show.html.erb" />
|
|
||||||
<option value="$PROJECT_DIR$/public/stylesheets/style.css" />
|
|
||||||
<option value="$PROJECT_DIR$/.gitignore" />
|
|
||||||
<option value="$PROJECT_DIR$/高级软件工程TODOList.md" />
|
|
||||||
<option value="$PROJECT_DIR$/Gemfile" />
|
|
||||||
<option value="$PROJECT_DIR$/app/helpers/main_helper.rb" />
|
|
||||||
<option value="$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/will_paginate-3.1.5/lib/will_paginate/view_helpers.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/public/stylesheets/mystyle.css" />
|
|
||||||
<option value="$PROJECT_DIR$/app/views/main/main.html.erb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/controllers/main_controller.rb" />
|
|
||||||
<option value="$PROJECT_DIR$/app/views/layouts/_nav.html.erb" />
|
|
||||||
</list>
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
|
|
||||||
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
|
|
||||||
<component name="JsGulpfileManager">
|
|
||||||
<detection-done>true</detection-done>
|
|
||||||
<sorting>DEFINITION_ORDER</sorting>
|
|
||||||
</component>
|
|
||||||
<component name="LogFilters">
|
|
||||||
<option name="FILTER_ERRORS" value="false" />
|
|
||||||
<option name="FILTER_WARNINGS" value="false" />
|
|
||||||
<option name="FILTER_INFO" value="true" />
|
|
||||||
<option name="FILTER_DEBUG" value="true" />
|
|
||||||
<option name="CUSTOM_FILTER" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectFrameBounds">
|
|
||||||
<option name="y" value="23" />
|
|
||||||
<option name="width" value="1440" />
|
|
||||||
<option name="height" value="873" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
|
||||||
<OptionsSetting value="true" id="Add" />
|
|
||||||
<OptionsSetting value="true" id="Remove" />
|
|
||||||
<OptionsSetting value="true" id="Checkout" />
|
|
||||||
<OptionsSetting value="true" id="Update" />
|
|
||||||
<OptionsSetting value="true" id="Status" />
|
|
||||||
<OptionsSetting value="true" id="Edit" />
|
|
||||||
<ConfirmationsSetting value="0" id="Add" />
|
|
||||||
<ConfirmationsSetting value="0" id="Remove" />
|
|
||||||
</component>
|
|
||||||
<component name="ProjectView">
|
|
||||||
<navigator currentView="ProjectPane" proportions="" version="1">
|
|
||||||
<flattenPackages />
|
|
||||||
<showMembers />
|
|
||||||
<showModules />
|
|
||||||
<showLibraryContents />
|
|
||||||
<hideEmptyPackages />
|
|
||||||
<abbreviatePackageNames />
|
|
||||||
<autoscrollToSource />
|
|
||||||
<autoscrollFromSource />
|
|
||||||
<sortByType />
|
|
||||||
<manualOrder />
|
|
||||||
<foldersAlwaysOnTop value="true" />
|
|
||||||
</navigator>
|
|
||||||
<panes>
|
|
||||||
<pane id="Scope" />
|
|
||||||
<pane id="RailsProjectView" />
|
|
||||||
<pane id="ProjectPane">
|
|
||||||
<subPane>
|
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="app" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="views" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="app" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="views" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="main" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="app" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="views" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="layouts" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="app" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="guoren" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="app" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="controllers" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
</PATH>
|
|
||||||
</subPane>
|
|
||||||
</pane>
|
|
||||||
<pane id="Scratches" />
|
|
||||||
</panes>
|
|
||||||
</component>
|
|
||||||
<component name="PropertiesComponent">
|
|
||||||
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
|
||||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
|
||||||
<property name="settings.editor.selected.configurable" value="reference.settingsdialog.IDE.editor.colors.Font" />
|
|
||||||
<property name="settings.editor.splitter.proportion" value="0.2" />
|
|
||||||
</component>
|
|
||||||
<component name="RunManager" selected="Rails.Development: guoren">
|
|
||||||
<configuration default="true" type="CucumberRunConfigurationType" factoryName="Cucumber">
|
|
||||||
<predefined_log_file id="RUBY_CUCUMBER" enabled="true" />
|
|
||||||
<module name="" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*.feature" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_TAGS_FILTER" VALUE="" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="TEST_NAME_FILTER" VALUE="" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_ARGS" VALUE="--color -r features" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="VERBOSE_OPTION" VALUE="false" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="CUCUMBER_RUNNER_PATH" VALUE="" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_RUNNER" VALUE="false" />
|
|
||||||
<CUCUMBER_RUN_CONFIG_SETTINGS_ID NAME="SETTINGS_VERSION" VALUE="2" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="true" type="RailsRunConfigurationType" factoryName="Rails">
|
|
||||||
<predefined_log_file id="RUBY_RAILS_SERVER" enabled="true" />
|
|
||||||
<module name="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="SCRIPT_ARGS" VALUE="" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="PORT" VALUE="3000" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="IP" VALUE="0.0.0.0" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="DUMMY_APP" VALUE="test/dummy" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="RAILS_SERVER_TYPE" VALUE="Default" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="ENVIRONMENT_TYPE" VALUE="development" />
|
|
||||||
<RAILS_SERVER_CONFIG_SETTINGS_ID NAME="LAUNCH_JS" VALUE="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="true" type="RakeRunConfigurationType" factoryName="Rake">
|
|
||||||
<module name="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_NAME" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ARGS" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ATTACHED_TEST_FRAMEWORKS" VALUE="" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_TRACE" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_DRYRUN" VALUE="false" />
|
|
||||||
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_PREREQS" VALUE="false" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="true" type="RubyRunConfigurationType" factoryName="Ruby">
|
|
||||||
<module name="" />
|
|
||||||
<RUBY_RUN_CONFIG NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RUBY_RUN_CONFIG NAME="WORK DIR" VALUE="" />
|
|
||||||
<RUBY_RUN_CONFIG NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RUBY_RUN_CONFIG NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RUBY_RUN_CONFIG NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RUBY_RUN_CONFIG NAME="SCRIPT_PATH" VALUE="" />
|
|
||||||
<RUBY_RUN_CONFIG NAME="SCRIPT_ARGS" VALUE="" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="true" type="TestUnitRunConfigurationType" factoryName="Test::Unit/Shoulda/Minitest">
|
|
||||||
<predefined_log_file id="RUBY_TESTUNIT" enabled="true" />
|
|
||||||
<module name="" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
|
||||||
<envs />
|
|
||||||
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="false" />
|
|
||||||
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
|
||||||
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
|
||||||
<COVERAGE_PATTERN ENABLED="true">
|
|
||||||
<PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
|
|
||||||
</COVERAGE_PATTERN>
|
|
||||||
</EXTENSION>
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_METHOD_NAME" VALUE="" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
|
||||||
<RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
|
|
||||||
<node-interpreter>project</node-interpreter>
|
|
||||||
<node-options />
|
|
||||||
<gulpfile />
|
|
||||||
<tasks />
|
|
||||||
<arguments />
|
|
||||||
<envs />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<configuration default="true" type="js.build_tools.npm" factoryName="npm">
|
|
||||||
<command value="run-script" />
|
|
||||||
<scripts />
|
|
||||||
<node-interpreter value="project" />
|
|
||||||
<envs />
|
|
||||||
<method />
|
|
||||||
</configuration>
|
|
||||||
<list size="4">
|
|
||||||
<item index="0" class="java.lang.String" itemvalue="Rake.test: guoren" />
|
|
||||||
<item index="1" class="java.lang.String" itemvalue="Rake.spec: guoren" />
|
|
||||||
<item index="2" class="java.lang.String" itemvalue="Rails.Production: guoren" />
|
|
||||||
<item index="3" class="java.lang.String" itemvalue="Rails.Development: guoren" />
|
|
||||||
</list>
|
|
||||||
</component>
|
|
||||||
<component name="ShelveChangesManager" show_recycled="false">
|
|
||||||
<option name="remove_strategy" value="false" />
|
|
||||||
</component>
|
|
||||||
<component name="SvnConfiguration">
|
|
||||||
<configuration />
|
|
||||||
</component>
|
|
||||||
<component name="TaskManager">
|
|
||||||
<task active="true" id="Default" summary="Default task">
|
|
||||||
<changelist id="585b6f0a-0d20-4a3c-825b-5f85848cbf40" name="Default" comment="" />
|
|
||||||
<created>1482659541785</created>
|
|
||||||
<option name="number" value="Default" />
|
|
||||||
<option name="presentableId" value="Default" />
|
|
||||||
<updated>1482659541785</updated>
|
|
||||||
<workItem from="1482659543437" duration="1781000" />
|
|
||||||
<workItem from="1482662034465" duration="18070000" />
|
|
||||||
<workItem from="1482733701322" duration="75000" />
|
|
||||||
<workItem from="1482733804592" duration="3749000" />
|
|
||||||
</task>
|
|
||||||
<servers />
|
|
||||||
</component>
|
|
||||||
<component name="TimeTrackingManager">
|
|
||||||
<option name="totallyTimeSpent" value="23675000" />
|
|
||||||
</component>
|
|
||||||
<component name="ToolWindowManager">
|
|
||||||
<frame x="0" y="23" width="1440" height="873" extended-state="6" />
|
|
||||||
<editor active="true" />
|
|
||||||
<layout>
|
|
||||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20243205" sideWeight="0.49292928" order="0" side_tool="false" content_ui="combo" />
|
|
||||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.30111524" sideWeight="0.50858366" order="7" side_tool="true" content_ui="tabs" />
|
|
||||||
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3283767" sideWeight="0.49713877" order="2" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24964234" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.30111524" sideWeight="0.4914163" order="7" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.19670959" sideWeight="0.5070707" order="2" side_tool="true" content_ui="tabs" />
|
|
||||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39900866" sideWeight="0.49570817" order="3" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3292683" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
|
||||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3283767" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
||||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
|
||||||
</layout>
|
|
||||||
</component>
|
|
||||||
<component name="UnknownFeatures">
|
|
||||||
<option featureType="com.intellij.fileTypeFactory" implementationName="*.gitignore" />
|
|
||||||
</component>
|
|
||||||
<component name="Vcs.Log.UiProperties">
|
|
||||||
<option name="RECENTLY_FILTERED_USER_GROUPS">
|
|
||||||
<collection />
|
|
||||||
</option>
|
|
||||||
<option name="RECENTLY_FILTERED_BRANCH_GROUPS">
|
|
||||||
<collection />
|
|
||||||
</option>
|
|
||||||
</component>
|
|
||||||
<component name="VcsContentAnnotationSettings">
|
|
||||||
<option name="myLimit" value="2678400000" />
|
|
||||||
</component>
|
|
||||||
<component name="XDebuggerManager">
|
|
||||||
<breakpoint-manager>
|
|
||||||
<breakpoints>
|
|
||||||
<line-breakpoint enabled="true" type="ruby-line">
|
|
||||||
<url>file://$PROJECT_DIR$/app/controllers/micro_posts_controller.rb</url>
|
|
||||||
<line>21</line>
|
|
||||||
<option name="timeStamp" value="5" />
|
|
||||||
</line-breakpoint>
|
|
||||||
</breakpoints>
|
|
||||||
<option name="time" value="8" />
|
|
||||||
</breakpoint-manager>
|
|
||||||
<watches-manager>
|
|
||||||
<configuration name="RailsRunConfigurationType">
|
|
||||||
<watch expression="pictures.original_filename" language="ruby" />
|
|
||||||
<watch expression="!page_num" language="ruby" />
|
|
||||||
<watch expression="pic.original_filename" language="ruby" />
|
|
||||||
<watch expression="save_name" language="ruby" />
|
|
||||||
<watch expression="page_num" language="ruby" />
|
|
||||||
</configuration>
|
|
||||||
</watches-manager>
|
|
||||||
</component>
|
|
||||||
<component name="editorHistoryManager">
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/micro_posts/show.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1173">
|
|
||||||
<caret line="69" column="15" selection-start-line="69" selection-start-column="15" selection-end-line="69" selection-end-column="15" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/public/stylesheets/style.css">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="32266">
|
|
||||||
<caret line="1898" column="0" selection-start-line="1898" selection-start-column="0" selection-end-line="1898" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1071">
|
|
||||||
<caret line="63" column="0" selection-start-line="63" selection-start-column="0" selection-end-line="63" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/main/main.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="3604">
|
|
||||||
<caret line="212" column="54" selection-start-line="212" selection-start-column="54" selection-end-line="212" selection-end-column="54" />
|
|
||||||
<folding>
|
|
||||||
<element signature="n#div#0;n#div#0;n#div#0;n#div#0;n#!!top" expanded="false" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/helpers/micro_posts_helper.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="204">
|
|
||||||
<caret line="12" column="41" selection-start-line="12" selection-start-column="41" selection-end-line="12" selection-end-column="41" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/public/stylesheets/mystyle.css">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1258">
|
|
||||||
<caret line="74" column="22" selection-start-line="74" selection-start-column="22" selection-end-line="74" selection-end-column="22" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/micro_posts/show.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1173">
|
|
||||||
<caret line="69" column="15" selection-start-line="69" selection-start-column="15" selection-end-line="69" selection-end-column="15" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/public/stylesheets/style.css">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="32266">
|
|
||||||
<caret line="1898" column="0" selection-start-line="1898" selection-start-column="0" selection-end-line="1898" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/main/main.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="3604">
|
|
||||||
<caret line="212" column="54" selection-start-line="212" selection-start-column="54" selection-end-line="212" selection-end-column="54" />
|
|
||||||
<folding>
|
|
||||||
<element signature="n#div#0;n#div#0;n#div#0;n#div#0;n#!!top" expanded="false" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/helpers/micro_posts_helper.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="204">
|
|
||||||
<caret line="12" column="41" selection-start-line="12" selection-start-column="41" selection-end-line="12" selection-end-column="41" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/public/stylesheets/mystyle.css">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1258">
|
|
||||||
<caret line="74" column="22" selection-start-line="74" selection-start-column="22" selection-end-line="74" selection-end-column="22" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/Gemfile">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="420">
|
|
||||||
<caret line="28" column="0" selection-start-line="28" selection-start-column="0" selection-end-line="28" selection-end-column="51" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/log/development.log" />
|
|
||||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/tmp/pids/server.pid" />
|
|
||||||
<entry file="file://$PROJECT_DIR$/log/development.log" />
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/chat/index.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="3536">
|
|
||||||
<caret line="235" column="35" selection-start-line="235" selection-start-column="35" selection-end-line="235" selection-end-column="35" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/config/routes.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="357">
|
|
||||||
<caret line="21" column="15" selection-start-line="21" selection-start-column="8" selection-end-line="21" selection-end-column="15" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/models/micro_post.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/helpers/login_helper.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/controllers/users_controller.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="102">
|
|
||||||
<caret line="6" column="30" selection-start-line="6" selection-start-column="30" selection-end-line="6" selection-end-column="30" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/helpers/application_helper.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="34">
|
|
||||||
<caret line="2" column="26" selection-start-line="2" selection-start-column="26" selection-end-line="2" selection-end-column="26" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/helpers/chat_helper.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="442">
|
|
||||||
<caret line="56" column="11" selection-start-line="56" selection-start-column="11" selection-end-line="56" selection-end-column="11" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/controllers/application_controller.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="85">
|
|
||||||
<caret line="5" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="15" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/controllers/chat_controller.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="187">
|
|
||||||
<caret line="11" column="30" selection-start-line="0" selection-start-column="0" selection-end-line="95" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/controllers/comments_controller.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="204">
|
|
||||||
<caret line="12" column="24" selection-start-line="0" selection-start-column="0" selection-end-line="23" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/controllers/login_controller.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="221">
|
|
||||||
<caret line="13" column="18" selection-start-line="0" selection-start-column="0" selection-end-line="27" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/models/user.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="0">
|
|
||||||
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/helpers/users_helper.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="34">
|
|
||||||
<caret line="2" column="0" selection-start-line="2" selection-start-column="0" selection-end-line="2" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/public/data/e07e5193c08ec8095be0ca7f97ab044c.png" />
|
|
||||||
<entry file="file://$PROJECT_DIR$/public/data/0feb2b9e089920216b1449b3047f6075.jpg">
|
|
||||||
<provider selected="true" editor-type-id="images">
|
|
||||||
<state />
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_controller/metal/rescue.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="374">
|
|
||||||
<caret line="22" column="0" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/notifications/instrumenter.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="374">
|
|
||||||
<caret line="22" column="0" selection-start-line="22" selection-start-column="0" selection-end-line="22" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/controllers/micro_posts_controller.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="204">
|
|
||||||
<caret line="12" column="0" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activesupport-5.0.0.1/lib/active_support/callbacks.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="152">
|
|
||||||
<caret line="126" column="0" selection-start-line="126" selection-start-column="0" selection-end-line="126" selection-end-column="0" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/public/stylesheets/style.css">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="32266">
|
|
||||||
<caret line="1898" column="0" selection-start-line="1898" selection-start-column="0" selection-end-line="1898" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/micro_posts/show.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1173">
|
|
||||||
<caret line="69" column="15" selection-start-line="69" selection-start-column="15" selection-end-line="69" selection-end-column="15" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/.gitignore">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="43">
|
|
||||||
<caret line="38" column="27" selection-start-line="38" selection-start-column="27" selection-end-line="38" selection-end-column="27" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/高级软件工程TODOList.md">
|
|
||||||
<provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]">
|
|
||||||
<state split_layout="SPLIT">
|
|
||||||
<first_editor relative-caret-position="17">
|
|
||||||
<caret line="1" column="24" selection-start-line="1" selection-start-column="24" selection-end-line="1" selection-end-column="24" />
|
|
||||||
<folding />
|
|
||||||
</first_editor>
|
|
||||||
<second_editor />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_controller/metal/basic_implicit_render.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="51">
|
|
||||||
<caret line="3" column="0" selection-start-line="3" selection-start-column="0" selection-end-line="3" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0.1/lib/action_controller/metal/instrumentation.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="322">
|
|
||||||
<caret line="45" column="0" selection-start-line="45" selection-start-column="0" selection-end-line="45" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/will_paginate-3.1.5/lib/will_paginate/view_helpers/action_view.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="425">
|
|
||||||
<caret line="25" column="8" selection-start-line="25" selection-start-column="8" selection-end-line="25" selection-end-column="8" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/helpers/main_helper.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="643">
|
|
||||||
<caret line="60" column="0" selection-start-line="60" selection-start-column="0" selection-end-line="60" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/public/stylesheets/mystyle.css">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="651">
|
|
||||||
<caret line="139" column="1" selection-start-line="139" selection-start-column="1" selection-end-line="139" selection-end-column="1" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/Gemfile">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="303">
|
|
||||||
<caret line="34" column="0" selection-start-line="34" selection-start-column="0" selection-end-line="34" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/will_paginate-3.1.5/lib/will_paginate/view_helpers.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="-241">
|
|
||||||
<caret line="76" column="95" selection-start-line="76" selection-start-column="87" selection-end-line="76" selection-end-column="95" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/helpers/micro_posts_helper.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="408">
|
|
||||||
<caret line="24" column="0" selection-start-line="24" selection-start-column="0" selection-end-line="24" selection-end-column="0" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/controllers/main_controller.rb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="357">
|
|
||||||
<caret line="21" column="5" selection-start-line="21" selection-start-column="5" selection-end-line="21" selection-end-column="5" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/main/main.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="629">
|
|
||||||
<caret line="91" column="16" selection-start-line="91" selection-start-column="16" selection-end-line="91" selection-end-column="16" />
|
|
||||||
<folding>
|
|
||||||
<element signature="n#div#0;n#div#0;n#div#0;n#div#0;n#!!top" expanded="false" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/views/layouts/_nav.html.erb">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="374">
|
|
||||||
<caret line="37" column="17" selection-start-line="37" selection-start-column="17" selection-end-line="37" selection-end-column="17" />
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
|
@ -33,30 +33,3 @@
|
||||||
界面的各导航模块可以实现正确的导航,是否会出现导航错乱的现象。
|
界面的各导航模块可以实现正确的导航,是否会出现导航错乱的现象。
|
||||||
15.退出
|
15.退出
|
||||||
用户点击退出之后,是否会退出当前帐号,并回到登陆界面重新进行登录。
|
用户点击退出之后,是否会退出当前帐号,并回到登陆界面重新进行登录。
|
||||||
16.链接为空
|
|
||||||
链接为空时,点击链接是否会有弹窗或者刷新页面。
|
|
||||||
17.链接正确性
|
|
||||||
链接未按指定的跳转。
|
|
||||||
所跳转的链接不存在。
|
|
||||||
链接不正确跳转。
|
|
||||||
18.分辨率
|
|
||||||
页面文字及样式,应支持常见的分辨率。
|
|
||||||
19.客户端兼容性
|
|
||||||
平台兼容性,主要是Android与IOS系统
|
|
||||||
20.浏览器兼容性
|
|
||||||
是否各浏览器可以兼容,界面可否正常显示。
|
|
||||||
同个功能在不同的浏览器上面,功能是否会出现失效的现象
|
|
||||||
21.整体界面测试
|
|
||||||
整体界面的样式、文字排列、图片展示等。
|
|
||||||
22.文字内容过多
|
|
||||||
文字内容过多时,页面排版错乱。
|
|
||||||
23.注册
|
|
||||||
相同的邮箱是否可以重复注册。
|
|
||||||
24.忘记密码
|
|
||||||
点击忘记密码后没有成功跳转界面。
|
|
||||||
25.评论发送
|
|
||||||
评论的发送和取消只能通过回车和删除,没有发送取消按钮。
|
|
||||||
26.动态发布
|
|
||||||
发布动态时,如果只填写标题和图片,点击发送后会刷新原界面。
|
|
||||||
27.动态删除
|
|
||||||
发过的动态如何进行删除?
|
|
9
Gemfile
9
Gemfile
|
@ -25,10 +25,9 @@ gem 'jbuilder', '~> 2.5'
|
||||||
# gem 'redis', '~> 3.0'
|
# gem 'redis', '~> 3.0'
|
||||||
# Use ActiveModel has_secure_password
|
# Use ActiveModel has_secure_password
|
||||||
gem 'bcrypt', '~> 3.1.7'
|
gem 'bcrypt', '~> 3.1.7'
|
||||||
# for windows
|
|
||||||
gem 'bcrypt-ruby', '~> 3.0.0', :require => "bcrypt"
|
|
||||||
# will_paginate
|
# will_paginate
|
||||||
gem 'will_paginate', '~> 3.1.0'
|
gem 'will_paginate', '~> 3.1.0'
|
||||||
|
gem 'sendgrid-ruby'
|
||||||
|
|
||||||
# Use Capistrano for deployment
|
# Use Capistrano for deployment
|
||||||
# gem 'capistrano-rails', group: :development
|
# gem 'capistrano-rails', group: :development
|
||||||
|
@ -48,9 +47,9 @@ group :development do
|
||||||
gem 'spring-watcher-listen', '~> 2.0.0'
|
gem 'spring-watcher-listen', '~> 2.0.0'
|
||||||
end
|
end
|
||||||
|
|
||||||
# group :production do
|
group :production do
|
||||||
# gem 'pg','~> 0.18.4'
|
gem 'pg'
|
||||||
# end
|
end
|
||||||
|
|
||||||
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
|
||||||
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
||||||
|
|
|
@ -41,7 +41,6 @@ GEM
|
||||||
arel (7.1.4)
|
arel (7.1.4)
|
||||||
bcrypt (3.1.11)
|
bcrypt (3.1.11)
|
||||||
bcrypt (3.1.11-x64-mingw32)
|
bcrypt (3.1.11-x64-mingw32)
|
||||||
bcrypt-ruby (3.0.1)
|
|
||||||
builder (3.2.2)
|
builder (3.2.2)
|
||||||
byebug (9.0.6)
|
byebug (9.0.6)
|
||||||
coffee-rails (4.2.1)
|
coffee-rails (4.2.1)
|
||||||
|
@ -86,6 +85,8 @@ GEM
|
||||||
mini_portile2 (~> 2.1.0)
|
mini_portile2 (~> 2.1.0)
|
||||||
nokogiri (1.6.8.1-x64-mingw32)
|
nokogiri (1.6.8.1-x64-mingw32)
|
||||||
mini_portile2 (~> 2.1.0)
|
mini_portile2 (~> 2.1.0)
|
||||||
|
pg (0.19.0)
|
||||||
|
pg (0.19.0-x64-mingw32)
|
||||||
puma (3.6.2)
|
puma (3.6.2)
|
||||||
rack (2.0.1)
|
rack (2.0.1)
|
||||||
rack-test (0.6.3)
|
rack-test (0.6.3)
|
||||||
|
@ -117,6 +118,7 @@ GEM
|
||||||
rb-fsevent (0.9.8)
|
rb-fsevent (0.9.8)
|
||||||
rb-inotify (0.9.7)
|
rb-inotify (0.9.7)
|
||||||
ffi (>= 0.5.0)
|
ffi (>= 0.5.0)
|
||||||
|
ruby_http_client (3.0.0)
|
||||||
sass (3.4.22)
|
sass (3.4.22)
|
||||||
sass-rails (5.0.6)
|
sass-rails (5.0.6)
|
||||||
railties (>= 4.0.0, < 6)
|
railties (>= 4.0.0, < 6)
|
||||||
|
@ -124,6 +126,8 @@ GEM
|
||||||
sprockets (>= 2.8, < 4.0)
|
sprockets (>= 2.8, < 4.0)
|
||||||
sprockets-rails (>= 2.0, < 4.0)
|
sprockets-rails (>= 2.0, < 4.0)
|
||||||
tilt (>= 1.1, < 3)
|
tilt (>= 1.1, < 3)
|
||||||
|
sendgrid-ruby (4.0.6)
|
||||||
|
ruby_http_client (~> 3.0.0)
|
||||||
spring (2.0.0)
|
spring (2.0.0)
|
||||||
activesupport (>= 4.2)
|
activesupport (>= 4.2)
|
||||||
spring-watcher-listen (2.0.1)
|
spring-watcher-listen (2.0.1)
|
||||||
|
@ -166,16 +170,17 @@ PLATFORMS
|
||||||
|
|
||||||
DEPENDENCIES
|
DEPENDENCIES
|
||||||
bcrypt (~> 3.1.7)
|
bcrypt (~> 3.1.7)
|
||||||
bcrypt-ruby (~> 3.0.0)
|
|
||||||
byebug
|
byebug
|
||||||
coffee-rails (~> 4.2)
|
coffee-rails (~> 4.2)
|
||||||
jbuilder (~> 2.5)
|
jbuilder (~> 2.5)
|
||||||
jquery-rails
|
jquery-rails
|
||||||
listen (~> 3.0.5)
|
listen (~> 3.0.5)
|
||||||
|
pg
|
||||||
puma (~> 3.0)
|
puma (~> 3.0)
|
||||||
rails (~> 5.0.0, >= 5.0.0.1)
|
rails (~> 5.0.0, >= 5.0.0.1)
|
||||||
rake
|
rake
|
||||||
sass-rails (~> 5.0)
|
sass-rails (~> 5.0)
|
||||||
|
sendgrid-ruby
|
||||||
spring
|
spring
|
||||||
spring-watcher-listen (~> 2.0.0)
|
spring-watcher-listen (~> 2.0.0)
|
||||||
sqlite3
|
sqlite3
|
||||||
|
|
|
@ -3,6 +3,7 @@ class ApplicationController < ActionController::Base
|
||||||
|
|
||||||
include ApplicationHelper
|
include ApplicationHelper
|
||||||
include LoginHelper
|
include LoginHelper
|
||||||
|
include UsersHelper
|
||||||
|
|
||||||
|
|
||||||
# Confirms a logged-in user.
|
# Confirms a logged-in user.
|
||||||
|
|
|
@ -31,9 +31,9 @@ class ChatController < ApplicationController
|
||||||
create_time: save_time, readed: false)
|
create_time: save_time, readed: false)
|
||||||
|
|
||||||
if msg_db.save
|
if msg_db.save
|
||||||
render json: {username: username, userpic: userpic, content: msg, time: save_time}
|
render json: {username: username, userpic: userpic, content: msg, time: get_strftime(save_time)}
|
||||||
else
|
else
|
||||||
render json: {username: username, userpic: userpic, content: "error", time: save_time}
|
render json: {username: username, userpic: userpic, content: "error", time: get_strftime(save_time)}
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -67,11 +67,16 @@ class ChatController < ApplicationController
|
||||||
if query_user.nil?
|
if query_user.nil?
|
||||||
query_name = nil
|
query_name = nil
|
||||||
ok = false
|
ok = false
|
||||||
|
else
|
||||||
|
if query_name == @user.name
|
||||||
|
query_name = nil
|
||||||
|
ok = false
|
||||||
else
|
else
|
||||||
query_name = query_user.name
|
query_name = query_user.name
|
||||||
query_pic = query_user.picurl
|
query_pic = query_user.picurl
|
||||||
ok = true
|
ok = true
|
||||||
end
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
if all_user_names.include? query_name or query_name == @user.name
|
if all_user_names.include? query_name or query_name == @user.name
|
||||||
query_name = nil
|
query_name = nil
|
||||||
|
|
|
@ -22,18 +22,17 @@ class MainController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def activity
|
def activity
|
||||||
|
@user = current_user
|
||||||
micro_post_id = params[:micropost_id]
|
micro_post_id = params[:micropost_id]
|
||||||
join = params[:join].to_s
|
join = params[:join].to_s
|
||||||
micro_post = MicroPost.find_by(id: micro_post_id)
|
|
||||||
if join == "true"
|
if join == "true"
|
||||||
micro_post.engage_people += 1
|
num, names = new_engaged_people(micro_post_id, current_user.name)
|
||||||
else
|
else
|
||||||
micro_post.engage_people -= 1
|
num, names = delete_engaged_people(micro_post_id, current_user.name)
|
||||||
end
|
end
|
||||||
if micro_post.save
|
|
||||||
render json: {total_num: micro_post.engage_people}
|
render json: {total_num: num, total_names: names}
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -27,10 +27,23 @@ class MicroPostsController < ApplicationController
|
||||||
|
|
||||||
if post_type >= 1 and post_type <= 3 and !title.empty? and !content.empty?
|
if post_type >= 1 and post_type <= 3 and !title.empty? and !content.empty?
|
||||||
micropost = @user.micro_posts.new(title: title, content: content, pic: pic_path,
|
micropost = @user.micro_posts.new(title: title, content: content, pic: pic_path,
|
||||||
post_time: DateTime.now, post_type: post_type, engage_people: 0)
|
post_time: DateTime.now, post_type: post_type,
|
||||||
|
engage_people: 1, engaged_people_names: current_user.name)
|
||||||
micropost.save
|
micropost.save
|
||||||
end
|
end
|
||||||
redirect_to microposts_path
|
redirect_to microposts_path
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def delete
|
||||||
|
@user = current_user
|
||||||
|
micropost_id = params[:micropost_id].to_i
|
||||||
|
micropost_id = @user.micro_posts.find_by(id: micropost_id)
|
||||||
|
if micropost_id
|
||||||
|
micropost_id.destroy
|
||||||
|
render json: {status:true}
|
||||||
|
else
|
||||||
|
render json: {status:false}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,8 @@
|
||||||
class UsersController < ApplicationController
|
class UsersController < ApplicationController
|
||||||
|
|
||||||
|
before_action :logged_in_user,except: [:new,:create,:forgetpasswd,:changepasswd]
|
||||||
|
@@user_pics_dir = "public/userpics"
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@user = User.new
|
@user = User.new
|
||||||
end
|
end
|
||||||
|
@ -20,14 +24,65 @@ class UsersController < ApplicationController
|
||||||
|
|
||||||
|
|
||||||
def update
|
def update
|
||||||
if @user.update_attributes(user_params)
|
end
|
||||||
flash[:success]="profile updated"
|
|
||||||
redirect_to @user
|
|
||||||
|
def forgetpasswd
|
||||||
|
useremail = params[:email]
|
||||||
|
if useremail
|
||||||
|
@user = User.find_by(email: useremail)
|
||||||
|
if !@user.nil?
|
||||||
|
send_code @user
|
||||||
|
flash[:success] = "验证码已发送至您的邮箱"
|
||||||
|
redirect_to changepasswd_path(email: @user.email)
|
||||||
else
|
else
|
||||||
render 'edit'
|
flash[:danger] = "用户不存在"
|
||||||
|
render 'forgetpasswd'
|
||||||
|
end
|
||||||
|
else
|
||||||
|
render 'forgetpasswd'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def changepasswd
|
||||||
|
if request.get?
|
||||||
|
user_email = params[:email]
|
||||||
|
if user_email
|
||||||
|
@user = User.find_by(email: user_email)
|
||||||
|
if !@user.nil?
|
||||||
|
render 'changepasswd'
|
||||||
|
else
|
||||||
|
flash[:danger] = "用户不存在"
|
||||||
|
redirect_to login_path
|
||||||
|
end
|
||||||
|
else
|
||||||
|
redirect_to login_path
|
||||||
|
end
|
||||||
|
else
|
||||||
|
result = check_change_params(params[:email], params[:verify_code], params[:password], params[:password_confirm])
|
||||||
|
if result
|
||||||
|
flash[:success]="密码更新成功"
|
||||||
|
else
|
||||||
|
flash[:danger]="密码更新失败"
|
||||||
|
end
|
||||||
|
redirect_to login_path
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def changeprofile
|
||||||
|
@user = current_user
|
||||||
|
result, user, err_string = check_change_profile_params(params[:user])
|
||||||
|
if result == false
|
||||||
|
flash[:danger] = err_string
|
||||||
|
else
|
||||||
|
pic_url = save_user_pic params[:user][:pic]
|
||||||
|
if pic_url.nil? == false
|
||||||
|
user[:picurl] = pic_url
|
||||||
|
end
|
||||||
|
@user.update_attributes(user)
|
||||||
|
end
|
||||||
|
redirect_to profile_path
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
@ -36,4 +91,58 @@ class UsersController < ApplicationController
|
||||||
:password_confirmation)
|
:password_confirmation)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def check_change_profile_params user_params
|
||||||
|
if user_params.nil?
|
||||||
|
return false, nil, "修改参数为空"
|
||||||
|
end
|
||||||
|
if user_params[:username].length <= 0
|
||||||
|
return false, nil, "姓名错误"
|
||||||
|
end
|
||||||
|
user = Hash.new
|
||||||
|
user[:name] = user_params[:username]
|
||||||
|
user[:profession] = user_params[:profession]
|
||||||
|
user[:sexual] = user_params[:sexual]
|
||||||
|
return true, user, nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def save_user_pic pic
|
||||||
|
if pic.nil?
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
if !(File.directory? @@user_pics_dir)
|
||||||
|
FileUtils.mkdir_p(@@user_pics_dir)
|
||||||
|
end
|
||||||
|
ext = File.extname(pic.original_filename)
|
||||||
|
timestamp = Time.now.to_s
|
||||||
|
picname = Digest::MD5::hexdigest(pic.original_filename + timestamp) + ext
|
||||||
|
File.open(File.join(@@user_pics_dir, picname), 'wb') { |f| f.write(pic.read) }
|
||||||
|
save_name = File.join("userpics", picname)
|
||||||
|
return save_name
|
||||||
|
end
|
||||||
|
|
||||||
|
def send_code user
|
||||||
|
verify_code = rand(999999).to_s
|
||||||
|
result = UserMailer.send_verify_code(user.email, verify_code).deliver_now
|
||||||
|
p result
|
||||||
|
user.update_attribute(:verify_code, verify_code)
|
||||||
|
end
|
||||||
|
|
||||||
|
def check_change_params(email, verify_code, password, password_confirmation)
|
||||||
|
if password != password_confirmation
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
user = User.find_by(email: email)
|
||||||
|
if user.nil?
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
if user.verify_code != verify_code
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
hold = Hash.new
|
||||||
|
hold[:password] = password
|
||||||
|
hold[:password_confirmation] = password_confirmation
|
||||||
|
user.update_attributes(hold)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
module ApplicationHelper
|
module ApplicationHelper
|
||||||
|
|
||||||
def utc_time_to_local utctime
|
def get_strftime intime
|
||||||
# 将数据库中的UTC时间转换为本地时间
|
# 将数据库中的UTC时间转换为本地时间
|
||||||
return utctime.localtime.strftime(format='%F %T')
|
return intime.utc.in_time_zone('Beijing').strftime(format='%F %T')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -43,12 +43,12 @@ module ChatHelper
|
||||||
messages.each do |message|
|
messages.each do |message|
|
||||||
if message.send_user == user.id
|
if message.send_user == user.id
|
||||||
x = {issend: true, name: user.name, userpic: user.picurl,
|
x = {issend: true, name: user.name, userpic: user.picurl,
|
||||||
content: message.content, time: utc_time_to_local(message.create_time)}
|
content: message.content, time: get_strftime(message.create_time)}
|
||||||
else
|
else
|
||||||
message.readed = true
|
message.readed = true
|
||||||
message.save
|
message.save
|
||||||
x = {issend: false, name: chat_with.name, userpic: chat_with.picurl,
|
x = {issend: false, name: chat_with.name, userpic: chat_with.picurl,
|
||||||
content: message.content, time: utc_time_to_local(message.create_time)}
|
content: message.content, time: get_strftime(message.create_time)}
|
||||||
end
|
end
|
||||||
results << x
|
results << x
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,35 +1,5 @@
|
||||||
module MainHelper
|
module MainHelper
|
||||||
|
|
||||||
def read_newest_post offset_num
|
|
||||||
micro_posts_array = []
|
|
||||||
micro_posts = MicroPost.all.order(post_time: :desc).limit(20).offset(offset_num)
|
|
||||||
if !micro_posts.empty?
|
|
||||||
micro_posts.each do |micro_post|
|
|
||||||
x = Hash.new()
|
|
||||||
x["username"] = micro_post.user.name
|
|
||||||
x["userpic"] = micro_post.user.picurl
|
|
||||||
x["postid"] = micro_post.id
|
|
||||||
x["title"] = micro_post.title
|
|
||||||
x["content"] = micro_post.content
|
|
||||||
case micro_post.post_type
|
|
||||||
when 1
|
|
||||||
x["type"] = "新鲜事"
|
|
||||||
when 2
|
|
||||||
x["type"] = "组团信息"
|
|
||||||
when 3
|
|
||||||
x["type"] = "失物招领"
|
|
||||||
else
|
|
||||||
x["type"] = "新鲜事"
|
|
||||||
end
|
|
||||||
x["time"] = utc_time_to_local(micro_post.post_time)
|
|
||||||
x["pics"] = micro_post.pic.split(',') if micro_post.pic
|
|
||||||
x["peo_num"] = micro_post.engage_people
|
|
||||||
micro_posts_array << x
|
|
||||||
end
|
|
||||||
end
|
|
||||||
return micro_posts_array
|
|
||||||
end
|
|
||||||
|
|
||||||
def get_post posts
|
def get_post posts
|
||||||
micro_posts_array = []
|
micro_posts_array = []
|
||||||
if !posts.empty?
|
if !posts.empty?
|
||||||
|
@ -50,7 +20,7 @@ module MainHelper
|
||||||
else
|
else
|
||||||
x["type"] = "新鲜事"
|
x["type"] = "新鲜事"
|
||||||
end
|
end
|
||||||
x["time"] = utc_time_to_local(micro_post.post_time)
|
x["time"] = get_strftime(micro_post.post_time)
|
||||||
x["pics"] = micro_post.pic.split(',') if micro_post.pic
|
x["pics"] = micro_post.pic.split(',') if micro_post.pic
|
||||||
x["peo_num"] = micro_post.engage_people
|
x["peo_num"] = micro_post.engage_people
|
||||||
micro_posts_array << x
|
micro_posts_array << x
|
||||||
|
@ -59,4 +29,69 @@ module MainHelper
|
||||||
return micro_posts_array
|
return micro_posts_array
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_engaged_people micropost_id
|
||||||
|
# 获得参加活动的人数和姓名
|
||||||
|
MicroPost.transaction do
|
||||||
|
micropost = MicroPost.lock.find_by(id: micropost_id)
|
||||||
|
engage_people = micropost.engage_people
|
||||||
|
engage_people_name = micropost.engaged_people_names
|
||||||
|
return engage_people, engage_people_name
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def save_engaged_people(micropost_id, num, names)
|
||||||
|
# 将参加活动的人数和姓名存入数据库中
|
||||||
|
MicroPost.transaction do
|
||||||
|
micropost = MicroPost.lock.find_by(id: micropost_id)
|
||||||
|
micropost.engage_people = num
|
||||||
|
micropost.engaged_people_names = names
|
||||||
|
micropost.save
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def new_engaged_people(micropost_id, name)
|
||||||
|
# 新参加活动登记
|
||||||
|
engage_people, engage_people_names = get_engaged_people micropost_id
|
||||||
|
if engage_people_names.nil?
|
||||||
|
engage_people += 1
|
||||||
|
engage_people_names = name
|
||||||
|
else
|
||||||
|
engage_people_names = engage_people_names.split(',')
|
||||||
|
if engage_people_names.include?(name) != true
|
||||||
|
engage_people_names << name
|
||||||
|
engage_people += 1
|
||||||
|
end
|
||||||
|
engage_people_names = engage_people_names.join(',')
|
||||||
|
end
|
||||||
|
save_engaged_people(micropost_id, engage_people, engage_people_names)
|
||||||
|
return engage_people, engage_people_names
|
||||||
|
end
|
||||||
|
|
||||||
|
def delete_engaged_people(micropost_id, name)
|
||||||
|
# 退出活动登记
|
||||||
|
engage_people, engage_people_names = get_engaged_people micropost_id
|
||||||
|
engage_people_names = engage_people_names.split(',')
|
||||||
|
if engage_people_names.delete(name)
|
||||||
|
engage_people_names = engage_people_names.join(',')
|
||||||
|
engage_people -= 1
|
||||||
|
save_engaged_people(micropost_id, engage_people, engage_people_names)
|
||||||
|
end
|
||||||
|
return engage_people,engage_people_names
|
||||||
|
end
|
||||||
|
|
||||||
|
def joinded_activity(micropost_id,name)
|
||||||
|
engage_people, engage_people_names = get_engaged_people micropost_id
|
||||||
|
if engage_people_names.nil?
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
engage_people_names = engage_people_names.split(',')
|
||||||
|
return engage_people_names.include?(name)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def micro_post_belong_to_user(micropost_id,user)
|
||||||
|
find_result = user.micro_posts.where(id: micropost_id)
|
||||||
|
return !find_result.empty?
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -9,6 +9,7 @@ module MicroPostsHelper
|
||||||
if !micro_posts.empty?
|
if !micro_posts.empty?
|
||||||
micro_posts.each do |micro_post|
|
micro_posts.each do |micro_post|
|
||||||
x = Hash.new()
|
x = Hash.new()
|
||||||
|
x["postid"] = micro_post.id
|
||||||
x["title"] = micro_post.title
|
x["title"] = micro_post.title
|
||||||
x["content"] = micro_post.content
|
x["content"] = micro_post.content
|
||||||
case micro_post.post_type
|
case micro_post.post_type
|
||||||
|
@ -21,9 +22,11 @@ module MicroPostsHelper
|
||||||
else
|
else
|
||||||
x["type"] = "新鲜事"
|
x["type"] = "新鲜事"
|
||||||
end
|
end
|
||||||
x["time"] = utc_time_to_local(micro_post.post_time)
|
x["time"] = get_strftime(micro_post.post_time)
|
||||||
x["pics"] = micro_post.pic.split(',') if micro_post.pic
|
x["pics"] = micro_post.pic.split(',') if micro_post.pic
|
||||||
x["peo_num"] = micro_post.engage_people
|
x["peo_num"] = micro_post.engage_people
|
||||||
|
x["peo_names"] = micro_post.engaged_people_names
|
||||||
|
x["comments"] = micro_post.comments
|
||||||
micro_posts_array << x
|
micro_posts_array << x
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -35,7 +38,8 @@ module MicroPostsHelper
|
||||||
FileUtils.mkdir_p(@@micro_posts_dir)
|
FileUtils.mkdir_p(@@micro_posts_dir)
|
||||||
end
|
end
|
||||||
ext = File.extname(pic.original_filename)
|
ext = File.extname(pic.original_filename)
|
||||||
save_name = Digest::MD5::hexdigest(pic.original_filename) + ext
|
timestamp = Time.now.to_s
|
||||||
|
save_name = Digest::MD5::hexdigest(pic.original_filename + timestamp) + ext
|
||||||
File.open(File.join(@@micro_posts_dir, save_name), 'wb') { |f| f.write(pic.read) }
|
File.open(File.join(@@micro_posts_dir, save_name), 'wb') { |f| f.write(pic.read) }
|
||||||
return save_name
|
return save_name
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,2 +1,11 @@
|
||||||
module UsersHelper
|
module UsersHelper
|
||||||
|
def get_user_name_from_id user_id
|
||||||
|
user = User.find_by(id: user_id)
|
||||||
|
return user.name if !user.nil?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def get_user_sexual user
|
||||||
|
user.sexual
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
class ApplicationMailer < ActionMailer::Base
|
class ApplicationMailer < ActionMailer::Base
|
||||||
default from: 'from@example.com'
|
default from: "ucasguoren@heroku.com"
|
||||||
layout 'mailer'
|
layout 'mailer'
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
class UserMailer < ApplicationMailer
|
||||||
|
default from: "ucasguoren@heroku.com"
|
||||||
|
|
||||||
|
def send_verify_code mail_address, code
|
||||||
|
@verify_code = code
|
||||||
|
mail(to: mail_address, subject: "验证码")
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
|
@ -1,4 +1,4 @@
|
||||||
class MicroPost < ApplicationRecord
|
class MicroPost < ApplicationRecord
|
||||||
belongs_to :user, dependent: :destroy
|
belongs_to :user
|
||||||
has_many :comments, class_name: 'Comment', foreign_key: 'micro_post_id', dependent: :destroy
|
has_many :comments, class_name: 'Comment', foreign_key: 'micro_post_id', dependent: :destroy
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,11 +2,13 @@ class User < ApplicationRecord
|
||||||
before_save :default_values
|
before_save :default_values
|
||||||
|
|
||||||
def default_values
|
def default_values
|
||||||
|
if self.picurl.nil?
|
||||||
self.picurl = 'images/avatars/default/avatar.png'
|
self.picurl = 'images/avatars/default/avatar.png'
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
has_many :send_messages, class_name: 'Message', foreign_key: 'send_user'
|
has_many :send_messages, class_name: 'Message', foreign_key: 'send_user', dependent: :destroy
|
||||||
has_many :recieve_messages, class_name: 'Message', foreign_key: 'recieve_user'
|
has_many :recieve_messages, class_name: 'Message', foreign_key: 'recieve_user', dependent: :destroy
|
||||||
has_many :micro_posts, dependent: :destroy
|
has_many :micro_posts, dependent: :destroy
|
||||||
has_many :comments, class_name: 'Comment', foreign_key: 'user_id', dependent: :destroy
|
has_many :comments, class_name: 'Comment', foreign_key: 'user_id', dependent: :destroy
|
||||||
|
|
||||||
|
@ -22,4 +24,6 @@ class User < ApplicationRecord
|
||||||
has_secure_password
|
has_secure_password
|
||||||
validates :password, presence: true, length: {minimum: 6}, allow_nil: true
|
validates :password, presence: true, length: {minimum: 6}, allow_nil: true
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,8 +8,8 @@
|
||||||
<%= form_tag(controller: "login", action: "login", method: "post") do %>
|
<%= form_tag(controller: "login", action: "login", method: "post") do %>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<span class="input-group-addon"><i class="icon-envelope"></i></span><input class="form-control"
|
<span class="input-group-addon"><i class="icon-user"></i></span><input class="form-control"
|
||||||
placeholder="请输入登陆账号"
|
placeholder="请输入登陆邮箱"
|
||||||
name="email"
|
name="email"
|
||||||
type="text">
|
type="text">
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,10 +22,10 @@
|
||||||
type="password">
|
type="password">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a class="pull-right" href="#">忘记密码?</a>
|
<a class="pull-right" href="/forgetpasswd">忘记密码?</a>
|
||||||
<div class="text-left">
|
<!--<div class="text-left">-->
|
||||||
<label class="checkbox"><input type="checkbox" name="remember" ><span>记住我</span></label>
|
<!--<label class="checkbox"><input type="checkbox" name="remember"><span>记住我</span></label>-->
|
||||||
</div>
|
<!--</div>-->
|
||||||
<input class="btn btn-lg btn-primary btn-block" type="submit" value="登陆">
|
<input class="btn btn-lg btn-primary btn-block" type="submit" value="登陆">
|
||||||
<% end %>
|
<% end %>
|
||||||
<p>
|
<p>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<div class="container-fluid main-content">
|
<div class="container-fluid main-content">
|
||||||
<%= render 'layouts/nav' %>
|
<%= render 'layouts/nav' %>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-8">
|
<div class="col-lg-12">
|
||||||
<% @micro_posts_array.each do |micro_post| %>
|
<% @micro_posts_array.each do |micro_post| %>
|
||||||
<div class="social-wrapper">
|
<div class="social-wrapper">
|
||||||
<div class="social-container">
|
<div class="social-container">
|
||||||
|
@ -32,12 +32,16 @@
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
<% if micro_post_belong_to_user(micro_post["postid"], @user) == false %>
|
||||||
<% if micro_post["type"] == "组团信息" %>
|
<% if micro_post["type"] == "组团信息" %>
|
||||||
<div class="social-button">
|
<div class="social-button">
|
||||||
<button class="btn btn-lg btn-success-outline activity">报名参加
|
<% if joinded_activity(micro_post["postid"], @user.name) %>
|
||||||
</button>
|
<button class="btn btn-lg btn-success-outline activity">取消报名</button>
|
||||||
<div class="activity-detail text-center">
|
<div class="activity-detail text-center"></div>
|
||||||
</div>
|
<% else %>
|
||||||
|
<button class="btn btn-lg btn-success-outline activity">报名参加</button>
|
||||||
|
<div class="activity-detail text-center"></div>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if micro_post["type"] == "失物招领" %>
|
<% if micro_post["type"] == "失物招领" %>
|
||||||
|
@ -46,6 +50,7 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
<div class="comment-button">
|
<div class="comment-button">
|
||||||
<button class="btn btn-block btn-default-outline showcomment">
|
<button class="btn btn-block btn-default-outline showcomment">
|
||||||
|
@ -171,7 +176,7 @@
|
||||||
success: function (data, textStatus, jqXHR) {
|
success: function (data, textStatus, jqXHR) {
|
||||||
//console.log(data["total_num"]);
|
//console.log(data["total_num"]);
|
||||||
var engage_people = data["total_num"];
|
var engage_people = data["total_num"];
|
||||||
var show_text = "已有" + engage_people + "人参加该活动";
|
var show_text = "已有" + engage_people + "人参加该活动" + '\n' + data["total_names"] + "参加了活动";
|
||||||
activity.text("取消报名");
|
activity.text("取消报名");
|
||||||
micropost.find(".activity-detail").text(show_text);
|
micropost.find(".activity-detail").text(show_text);
|
||||||
}
|
}
|
||||||
|
@ -185,7 +190,7 @@
|
||||||
url: '/activity',
|
url: '/activity',
|
||||||
success: function (data, textStatus, jqXHR) {
|
success: function (data, textStatus, jqXHR) {
|
||||||
activity.text("报名参加");
|
activity.text("报名参加");
|
||||||
micropost.find(".activity-detail").text("");
|
micropost.find(".activity-detail").text("成功取消报名");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<!-- End Navigation -->
|
<!-- End Navigation -->
|
||||||
|
|
||||||
<div class="container-fluid main-content padded" id="user-page">
|
<div class="container-fluid main-content padded" id="user-page">
|
||||||
<row id="new-post">
|
<div class="row" id="new-post">
|
||||||
<div class="widget-container fluid-height clearfix">
|
<div class="widget-container fluid-height clearfix">
|
||||||
<div class="heading">
|
<div class="heading">
|
||||||
<i class="icon-reorder"></i>发布新信息
|
<i class="icon-reorder"></i>发布新信息
|
||||||
|
@ -56,12 +56,12 @@
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
</row>
|
</div>
|
||||||
|
|
||||||
<div class="posts">
|
<div class="posts">
|
||||||
<% @micro_posts.each do |micro_post| %>
|
<% @micro_posts.each do |micro_post| %>
|
||||||
<div class="micro-post">
|
<div class="micro-post" id="<%= micro_post["postid"] %>">
|
||||||
<button class="close" data-dismiss="alert" type="button">×</button>
|
<button class="close delete-post" data-dismiss="alert" type="button">×</button>
|
||||||
<div class="widget-container fluid-height padded">
|
<div class="widget-container fluid-height padded">
|
||||||
<div class="heading col-md-12">
|
<div class="heading col-md-12">
|
||||||
<i class="icon-tags"><%= micro_post["type"] %></i>
|
<i class="icon-tags"><%= micro_post["type"] %></i>
|
||||||
|
@ -77,13 +77,48 @@
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<div class="btn btn-default btn-block">
|
<div class="btn btn-default btn-block show-details">
|
||||||
查看详情
|
查看详情
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="activity-details" hidden>
|
||||||
|
<% if micro_post["type"] == "组团信息" %>
|
||||||
|
<div class="widget-container fluid-height">
|
||||||
|
<div class="heading">
|
||||||
|
<i class="icon-align-center"> 活动详情 </i>
|
||||||
|
</div>
|
||||||
|
<div class="widget-content padded">
|
||||||
|
<h3 class="text-center">已有<%= micro_post["peo_num"] %>人参加活动</h3>
|
||||||
|
<p><%= micro_post["peo_names"] %>参加了该活动</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% end %>
|
||||||
|
<% if !micro_post["comments"].empty? %>
|
||||||
|
<div class="widget-container fluid-height scrollable list user-comments">
|
||||||
|
<div class="heading">
|
||||||
|
<i class="icon-mail-forward"> 评论 </i>
|
||||||
|
</div>
|
||||||
|
<div class="widget-content fluid-height">
|
||||||
|
<ul>
|
||||||
|
<% micro_post["comments"].each do |comment| %>
|
||||||
|
<li>
|
||||||
|
<div>
|
||||||
|
<a class="user-name"><%= get_user_name_from_id(comment.user_id) %></a><em></em>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<p><%= comment.content %></p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<% else %>
|
||||||
|
<p class="text-center alert-info">暂无评论</p>
|
||||||
|
<% end %>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
@ -186,4 +221,41 @@
|
||||||
function G(id) {
|
function G(id) {
|
||||||
return document.getElementById(id);
|
return document.getElementById(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$(".delete-post").bind("click", function () {
|
||||||
|
var errorhtml = '<div class="alert alert-danger">' +
|
||||||
|
'<button class="close" data-dismiss="alert" type="button">×</button>删除失败</div>';
|
||||||
|
var successhtml = '<div class="alert alert-success">' +
|
||||||
|
'<button class="close" data-dismiss="alert" type="button">×</button>删除成功</div>';
|
||||||
|
var micropost_id = $(this).parent().attr("id");
|
||||||
|
$.ajax({
|
||||||
|
type: 'get',
|
||||||
|
dataType: 'json',
|
||||||
|
data: {micropost_id: micropost_id},
|
||||||
|
url: '/deletepost',
|
||||||
|
success: function (data, textStatus, jqXHR) {
|
||||||
|
if (data['status'] == true) {
|
||||||
|
$('.posts').before(successhtml);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('.posts').before(errorhtml);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$('.show-details').bind("click", function () {
|
||||||
|
var current_button = $(this);
|
||||||
|
var micropost = current_button.parent().parent().parent();
|
||||||
|
var text = current_button.text().trim();
|
||||||
|
if (text == "查看详情") {
|
||||||
|
micropost.find(".activity-details").show();
|
||||||
|
current_button.text("隐藏详情");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
micropost.find(".activity-details").hide();
|
||||||
|
current_button.text("查看详情");
|
||||||
|
}
|
||||||
|
|
||||||
|
})
|
||||||
</script>
|
</script>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<!-- 新 Bootstrap 核心 CSS 文件 -->
|
||||||
|
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css">
|
||||||
|
|
||||||
|
<!-- 可选的Bootstrap主题文件(一般不用引入) -->
|
||||||
|
<link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap-theme.min.css">
|
||||||
|
|
||||||
|
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
|
||||||
|
<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
|
||||||
|
|
||||||
|
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
|
||||||
|
<script src="http://cdn.bootcss.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
您的验证码是: <%= @verify_code %>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
|
@ -0,0 +1,47 @@
|
||||||
|
<% provide(:title, '忘记密码') %>
|
||||||
|
<% provide(:body_class, 'login2') %>
|
||||||
|
|
||||||
|
<div class="login-wrapper">
|
||||||
|
<a href="#"><img width="210" height="70" src="images/logo/guoren.png"/></a>
|
||||||
|
|
||||||
|
<%= form_tag("/changepasswd", method: "post") do %>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"><i class="icon-envelope"></i></span><input class="form-control"
|
||||||
|
placeholder="请输入邮箱地址"
|
||||||
|
name="email"
|
||||||
|
type="email">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"><i class="icon-lock"></i></span><input class="form-control"
|
||||||
|
placeholder="请输入邮箱验证码"
|
||||||
|
name="verify_code"
|
||||||
|
type="number">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"><i class="icon-ok"></i></span><input class="form-control"
|
||||||
|
placeholder="请输入新密码"
|
||||||
|
name="password"
|
||||||
|
type="password">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"><i class="icon-ok"></i></span><input class="form-control"
|
||||||
|
placeholder="请再次输入新密码"
|
||||||
|
name="password_confirm"
|
||||||
|
type="password">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= submit_tag "重置密码", class: "btn btn-primary btn-block" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
</div>
|
|
@ -6,7 +6,8 @@
|
||||||
|
|
||||||
<%= render 'layouts/nav' %>
|
<%= render 'layouts/nav' %>
|
||||||
|
|
||||||
<form action="/baidu" class="form-horizontal" id="profile" method="post">
|
<%= form_tag("/changeprofile", method: "post", class: "form-horizontal", id: "profile", enctype: "multipart/form-data") do %>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="widget-container">
|
<div class="widget-container">
|
||||||
<div class="heading">
|
<div class="heading">
|
||||||
|
@ -23,7 +24,7 @@
|
||||||
<div class="fileupload fileupload-new" data-provides="fileupload">
|
<div class="fileupload fileupload-new" data-provides="fileupload">
|
||||||
<div class="fileupload-new img-thumbnail" style="width: 200px; height: 200px;">
|
<div class="fileupload-new img-thumbnail" style="width: 200px; height: 200px;">
|
||||||
<!--原照片-->
|
<!--原照片-->
|
||||||
<img src="/images/avatars/default/avatar.png">
|
<img src="<%= @user.picurl %>">
|
||||||
</div>
|
</div>
|
||||||
<div class="fileupload-preview fileupload-exists img-thumbnail"
|
<div class="fileupload-preview fileupload-exists img-thumbnail"
|
||||||
style="width: 200px; max-height: 200px">
|
style="width: 200px; max-height: 200px">
|
||||||
|
@ -37,12 +38,9 @@
|
||||||
class="fileupload-exists">
|
class="fileupload-exists">
|
||||||
重新选择
|
重新选择
|
||||||
</span>
|
</span>
|
||||||
<input type="file" name="image_file">
|
<input type="file" name="user[pic]">
|
||||||
</span>
|
</span>
|
||||||
<a
|
<a class="btn btn-default fileupload-exists" data-dismiss="fileupload">清除照片</a>
|
||||||
class="btn btn-default fileupload-exists" data-dismiss="fileupload"
|
|
||||||
href="#">清除照片
|
|
||||||
</a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -57,52 +55,43 @@
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-md-2">姓名</label>
|
<label class="control-label col-md-2">姓名</label>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<input class="form-control" placeholder="Text" type="text">
|
<input class="form-control" placeholder="请输入您的姓名" value="<%= @user.name %>"
|
||||||
|
type="text" name="user[username]">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-md-2">专业</label>
|
<label class="control-label col-md-2">专业</label>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<input class="form-control" placeholder="Text" type="text">
|
<input class="form-control" placeholder="请输入您的专业" value="<%= @user.profession %>"
|
||||||
</div>
|
type="text" name="user[profession]">
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="control-label col-md-2">学院</label>
|
|
||||||
<div class="col-md-9">
|
|
||||||
<select class="form-control">
|
|
||||||
<option value="Category 1">Option 1</option>
|
|
||||||
<option value="Category 2">Option 2</option>
|
|
||||||
<option value="Category 3">Option 3</option>
|
|
||||||
<option value="Category 4">Option 4</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label class="control-label col-md-2">性别</label>
|
<label class="control-label col-md-2">性别</label>
|
||||||
<div class="col-md-9">
|
<div class="col-md-9">
|
||||||
<label class="radio-inline"><input name="optionsRadios" type="radio"
|
<label class="radio-inline"><input name="user[sexual]" type="radio" value="1"
|
||||||
value="1"><span>男</span></label><label
|
<% if get_user_sexual(@user) == true %>checked
|
||||||
class="radio-inline"><input name="optionsRadios"
|
<% end %>
|
||||||
type="radio"
|
><span>男</span></label>
|
||||||
value="0"><span>女</span></label>
|
<label class="radio-inline"><input name="user[sexual]" type="radio" value="0"
|
||||||
|
<% if get_user_sexual(@user) == false %>checked
|
||||||
|
<% end %>
|
||||||
|
><span>女</span></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<div class="col-md-12 text-center">
|
<div class="col-md-12 text-center">
|
||||||
<button class="btn btn-primary" type="submit">修改</button>
|
<button class="btn btn-primary" type="submit">修改</button>
|
||||||
<button class="btn btn-default-outline">取消</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<% provide(:title, '忘记密码') %>
|
||||||
|
<% provide(:body_class, 'login2') %>
|
||||||
|
|
||||||
|
<div class="login-wrapper">
|
||||||
|
<a href="#"><img width="210" height="70" src="images/logo/guoren.png"/></a>
|
||||||
|
|
||||||
|
<%= form_tag("/forgetpasswd", method: "get") do %>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"><i class="icon-envelope"></i></span><input class="form-control"
|
||||||
|
placeholder="请输入邮箱地址"
|
||||||
|
name="email"
|
||||||
|
type="email">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= submit_tag "找回密码", class: "btn btn-primary btn-block" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
|
</div>
|
|
@ -0,0 +1,33 @@
|
||||||
|
<%= form_for @user, url: {action: "changepasswd"} do |f| %>
|
||||||
|
<%= render 'shared/error_messages', object: f.object %>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"><i class="icon-lock"></i></span>
|
||||||
|
<input class="form-control" placeholder="请输入邮箱验证码" name="verify_code" type="text">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"><i class="icon-envelope"></i></span>
|
||||||
|
<%= f.email_field :email, class: 'form-control', placeholder: "请输入邮箱" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"><i class="icon-ok"></i></span>
|
||||||
|
<%= f.password_field :password, class: 'form-control', placeholder: "请输入密码" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-addon"><i class="icon-ok"></i></span>
|
||||||
|
<%= f.password_field :password_confirmation, class: 'form-control', placeholder: "请再次输入密码" %>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%= f.submit "重置密码", class: "btn btn-primary btn-block" %>
|
||||||
|
<% end %>
|
|
@ -11,5 +11,6 @@ module GuorenPro
|
||||||
# Settings in config/environments/* take precedence over those specified here.
|
# Settings in config/environments/* take precedence over those specified here.
|
||||||
# Application configuration should go into files in config/initializers
|
# Application configuration should go into files in config/initializers
|
||||||
# -- all .rb files in that directory are automatically loaded.
|
# -- all .rb files in that directory are automatically loaded.
|
||||||
|
config.time_zone = 'Beijing'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -51,4 +51,19 @@ Rails.application.configure do
|
||||||
# Use an evented file watcher to asynchronously detect changes in source code,
|
# Use an evented file watcher to asynchronously detect changes in source code,
|
||||||
# routes, locales, etc. This feature depends on the listen gem.
|
# routes, locales, etc. This feature depends on the listen gem.
|
||||||
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
||||||
|
|
||||||
|
config.action_mailer.raise_delivery_errors = true
|
||||||
|
config.action_mailer.delivery_method = :smtp
|
||||||
|
host = 'ucasguoren.herokuapp.com'
|
||||||
|
config.action_mailer.default_url_options = {host: host}
|
||||||
|
config.action_mailer.raise_delivery_errors = true
|
||||||
|
config.action_mailer.smtp_settings = {
|
||||||
|
:address => "smtp.sendgrid.net",
|
||||||
|
:port => 587,
|
||||||
|
:user_name => "app61271187@heroku.com",
|
||||||
|
:password => "5cysx5kw9899",
|
||||||
|
:authentication => "plain",
|
||||||
|
:domain => 'herokuapp.com',
|
||||||
|
:enable_starttls_auto => true
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
|
@ -83,4 +83,19 @@ Rails.application.configure do
|
||||||
|
|
||||||
# Do not dump schema after migrations.
|
# Do not dump schema after migrations.
|
||||||
config.active_record.dump_schema_after_migration = false
|
config.active_record.dump_schema_after_migration = false
|
||||||
|
|
||||||
|
config.action_mailer.raise_delivery_errors = true
|
||||||
|
config.action_mailer.delivery_method = :smtp
|
||||||
|
host = 'ucasguoren.herokuapp.com'
|
||||||
|
config.action_mailer.default_url_options = {host: host}
|
||||||
|
config.action_mailer.raise_delivery_errors = true
|
||||||
|
config.action_mailer.smtp_settings = {
|
||||||
|
:address => "smtp.sendgrid.net",
|
||||||
|
:port => 587,
|
||||||
|
:user_name => ENV['SENDGRID_USERNAME'],
|
||||||
|
:password => ENV['SENDGRID_PASSWORD'],
|
||||||
|
:authentication => "plain",
|
||||||
|
:domain => 'herokuapp.com',
|
||||||
|
:enable_starttls_auto => true
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,6 +8,10 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
get '/signup', to: 'users#new'
|
get '/signup', to: 'users#new'
|
||||||
get '/profile', to: 'users#edit'
|
get '/profile', to: 'users#edit'
|
||||||
|
get '/forgetpasswd', to: 'users#forgetpasswd'
|
||||||
|
get '/changepasswd', to: 'users#changepasswd'
|
||||||
|
post '/changepasswd', to: 'users#changepasswd'
|
||||||
|
post '/changeprofile', to: 'users#changeprofile'
|
||||||
|
|
||||||
get '/main', to: 'main#show'
|
get '/main', to: 'main#show'
|
||||||
get '/activity', to: 'main#activity'
|
get '/activity', to: 'main#activity'
|
||||||
|
@ -19,7 +23,9 @@ Rails.application.routes.draw do
|
||||||
get '/online', to: 'chat#online'
|
get '/online', to: 'chat#online'
|
||||||
|
|
||||||
get '/microposts', to: 'micro_posts#show'
|
get '/microposts', to: 'micro_posts#show'
|
||||||
post 'newpost', to: 'micro_posts#new'
|
post '/newpost', to: 'micro_posts#new'
|
||||||
|
get '/deletepost', to: 'micro_posts#delete'
|
||||||
|
|
||||||
|
|
||||||
get '/comments', to: 'comments#get'
|
get '/comments', to: 'comments#get'
|
||||||
post '/newcomment', to: 'comments#new'
|
post '/newcomment', to: 'comments#new'
|
||||||
|
|
Binary file not shown.
|
@ -0,0 +1,5 @@
|
||||||
|
class AddEngagedPeopleNamesToMicroPosts < ActiveRecord::Migration[5.0]
|
||||||
|
def change
|
||||||
|
add_column :micro_posts, :engaged_people_names, :text
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddVerifyCodeToUsers < ActiveRecord::Migration[5.0]
|
||||||
|
def change
|
||||||
|
add_column :users, :verify_code, :string
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,5 @@
|
||||||
|
class RemoveAcademyFromUser < ActiveRecord::Migration[5.0]
|
||||||
|
def change
|
||||||
|
remove_column :users, :academy, :string
|
||||||
|
end
|
||||||
|
end
|
|
@ -10,7 +10,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20161129085653) do
|
ActiveRecord::Schema.define(version: 20170114044144) do
|
||||||
|
|
||||||
create_table "comments", force: :cascade do |t|
|
create_table "comments", force: :cascade do |t|
|
||||||
t.string "content"
|
t.string "content"
|
||||||
|
@ -41,6 +41,7 @@ ActiveRecord::Schema.define(version: 20161129085653) do
|
||||||
t.integer "user_id"
|
t.integer "user_id"
|
||||||
t.integer "engage_people"
|
t.integer "engage_people"
|
||||||
t.string "title"
|
t.string "title"
|
||||||
|
t.text "engaged_people_names"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "users", force: :cascade do |t|
|
create_table "users", force: :cascade do |t|
|
||||||
|
@ -48,11 +49,11 @@ ActiveRecord::Schema.define(version: 20161129085653) do
|
||||||
t.string "email"
|
t.string "email"
|
||||||
t.string "picurl"
|
t.string "picurl"
|
||||||
t.string "profession"
|
t.string "profession"
|
||||||
t.string "academy"
|
|
||||||
t.boolean "sexual"
|
t.boolean "sexual"
|
||||||
t.datetime "created_at", null: false
|
t.datetime "created_at", null: false
|
||||||
t.datetime "updated_at", null: false
|
t.datetime "updated_at", null: false
|
||||||
t.string "password_digest"
|
t.string "password_digest"
|
||||||
|
t.string "verify_code"
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
2016-12-27T14:26:30.434989+00:00 app[web.1]: I, [2016-12-27T14:26:30.434940 #4] INFO -- : [bab85abb-1e49-4592-a08e-17e303e12337] Rendered layouts/_refer.html.erb (0.0ms)
|
||||||
|
2016-12-27T14:26:30.435224+00:00 app[web.1]: I, [2016-12-27T14:26:30.435180 #4] INFO -- : [bab85abb-1e49-4592-a08e-17e303e12337] Completed 200 OK in 84ms (Views: 3.7ms | ActiveRecord: 3.2ms)
|
||||||
|
2016-12-27T14:26:30.437771+00:00 heroku[router]: at=info method=POST path="/users" host=se-guoren-test.herokuapp.com request_id=bab85abb-1e49-4592-a08e-17e303e12337 fwd="121.195.114.11" dyno=web.1 connect=1ms service=91ms status=200 bytes=8670
|
||||||
|
2016-12-27T14:26:30.952100+00:00 heroku[router]: at=info method=GET path="/stylesheets/jquery.fancybox.css" host=se-guoren-test.herokuapp.com request_id=0372c738-9a6f-4b5d-a68b-3ee8b70ef463 fwd="121.195.114.11" dyno=web.1 connect=1ms service=1ms status=304 bytes=48
|
||||||
|
2016-12-27T14:26:43.970062+00:00 heroku[router]: at=info method=POST path="/users" host=se-guoren-test.herokuapp.com request_id=54f81ac3-fc75-47c7-8073-e8a0fe4aabeb fwd="121.195.114.11" dyno=web.1 connect=1ms service=88ms status=302 bytes=828
|
||||||
|
2016-12-27T14:26:43.886254+00:00 app[web.1]: I, [2016-12-27T14:26:43.886205 #4] INFO -- : [54f81ac3-fc75-47c7-8073-e8a0fe4aabeb] Processing by UsersController#create as HTML
|
||||||
|
2016-12-27T14:26:43.885608+00:00 app[web.1]: I, [2016-12-27T14:26:43.885530 #4] INFO -- : [54f81ac3-fc75-47c7-8073-e8a0fe4aabeb] Started POST "/users" for 121.195.114.11 at 2016-12-27 14:26:43 +0000
|
||||||
|
2016-12-27T14:26:43.886317+00:00 app[web.1]: I, [2016-12-27T14:26:43.886276 #4] INFO -- : [54f81ac3-fc75-47c7-8073-e8a0fe4aabeb] Parameters: {"utf8"=>"✓", "authenticity_token"=>"icK/M7hdBHuCBWyWPM3N6Rw2RjeZrxQHPwwc6GTvdZnKOmYM8GstjCvGhbey5je6TZOa/EJQzSSMgMz8izhGfg==", "user"=>{"name"=>"张大于", "email"=>"zxy@ucas.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}, "commit"=>"注册"}
|
||||||
|
2016-12-27T14:26:43.960358+00:00 app[web.1]: D, [2016-12-27T14:26:43.960262 #4] DEBUG -- : [54f81ac3-fc75-47c7-8073-e8a0fe4aabeb] [1m[35m (0.6ms)[0m [1m[35mBEGIN[0m
|
||||||
|
2016-12-27T14:26:43.962468+00:00 app[web.1]: D, [2016-12-27T14:26:43.962418 #4] DEBUG -- : [54f81ac3-fc75-47c7-8073-e8a0fe4aabeb] [1m[36mUser Exists (0.9ms)[0m [1m[34mSELECT 1 AS one FROM "users" WHERE LOWER("users"."name") = LOWER($1) LIMIT $2[0m [["name", "张大于"], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:43.966355+00:00 app[web.1]: D, [2016-12-27T14:26:43.966304 #4] DEBUG -- : [54f81ac3-fc75-47c7-8073-e8a0fe4aabeb] [1m[35mSQL (0.9ms)[0m [1m[32mINSERT INTO "users" ("name", "email", "picurl", "created_at", "updated_at", "password_digest") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id"[0m [["name", "张大于"], ["email", "zxy@ucas.com"], ["picurl", "images/avatars/default/avatar.png"], ["created_at", 2016-12-27 14:26:43 UTC], ["updated_at", 2016-12-27 14:26:43 UTC], ["password_digest", "$2a$10$NbxhrvZAJnin7CynJIpWWu7lFpR2wqZaG6e7UPpwMMfpIRPpoQUvi"]]
|
||||||
|
2016-12-27T14:26:43.963732+00:00 app[web.1]: D, [2016-12-27T14:26:43.963669 #4] DEBUG -- : [54f81ac3-fc75-47c7-8073-e8a0fe4aabeb] [1m[36mUser Exists (0.8ms)[0m [1m[34mSELECT 1 AS one FROM "users" WHERE "users"."email" = $1 LIMIT $2[0m [["email", "zxy@ucas.com"], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:43.968484+00:00 app[web.1]: D, [2016-12-27T14:26:43.968433 #4] DEBUG -- : [54f81ac3-fc75-47c7-8073-e8a0fe4aabeb] [1m[35m (1.5ms)[0m [1m[35mCOMMIT[0m
|
||||||
|
2016-12-27T14:26:43.968946+00:00 app[web.1]: I, [2016-12-27T14:26:43.968897 #4] INFO -- : [54f81ac3-fc75-47c7-8073-e8a0fe4aabeb] Redirected to http://se-guoren-test.herokuapp.com/main
|
||||||
|
2016-12-27T14:26:43.969092+00:00 app[web.1]: I, [2016-12-27T14:26:43.969050 #4] INFO -- : [54f81ac3-fc75-47c7-8073-e8a0fe4aabeb] Completed 302 Found in 83ms (ActiveRecord: 4.7ms)
|
||||||
|
2016-12-27T14:26:44.457630+00:00 app[web.1]: I, [2016-12-27T14:26:44.457541 #4] INFO -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] Started GET "/main" for 121.195.114.11 at 2016-12-27 14:26:44 +0000
|
||||||
|
2016-12-27T14:26:44.459049+00:00 app[web.1]: I, [2016-12-27T14:26:44.458997 #4] INFO -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] Processing by MainController#show as HTML
|
||||||
|
2016-12-27T14:26:44.466723+00:00 app[web.1]: D, [2016-12-27T14:26:44.466667 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[36mUser Load (0.8ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 4], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:44.473385+00:00 app[web.1]: D, [2016-12-27T14:26:44.473325 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[35m (1.0ms)[0m [1m[34mSELECT COUNT(*) FROM "micro_posts" WHERE "micro_posts"."post_type" IN (1, 2, 3)[0m
|
||||||
|
2016-12-27T14:26:44.475919+00:00 app[web.1]: D, [2016-12-27T14:26:44.475869 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[36mMicroPost Load (1.1ms)[0m [1m[34mSELECT "micro_posts".* FROM "micro_posts" WHERE "micro_posts"."post_type" IN (1, 2, 3) ORDER BY "micro_posts"."post_time" DESC LIMIT $1 OFFSET $2[0m [["LIMIT", 10], ["OFFSET", 0]]
|
||||||
|
2016-12-27T14:26:44.497013+00:00 app[web.1]: D, [2016-12-27T14:26:44.496933 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[36mUser Load (1.1ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 3], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:44.499218+00:00 app[web.1]: D, [2016-12-27T14:26:44.499115 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[36mUser Load (0.8ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 2], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:44.500171+00:00 app[web.1]: D, [2016-12-27T14:26:44.500121 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[36mCACHE (0.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 2], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:44.502057+00:00 app[web.1]: D, [2016-12-27T14:26:44.502007 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[36mUser Load (0.8ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 1], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:44.503174+00:00 app[web.1]: D, [2016-12-27T14:26:44.503115 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[36mCACHE (0.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 1], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:44.504166+00:00 app[web.1]: D, [2016-12-27T14:26:44.504114 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[36mCACHE (0.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 1], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:44.505148+00:00 app[web.1]: D, [2016-12-27T14:26:44.505100 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[36mCACHE (0.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 1], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:44.506694+00:00 app[web.1]: I, [2016-12-27T14:26:44.506634 #4] INFO -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] Rendering main/main.html.erb within layouts/application
|
||||||
|
2016-12-27T14:26:44.509447+00:00 app[web.1]: I, [2016-12-27T14:26:44.509384 #4] INFO -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] Rendered layouts/_nav.html.erb (0.5ms)
|
||||||
|
2016-12-27T14:26:44.521463+00:00 app[web.1]: D, [2016-12-27T14:26:44.521398 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[35m (1.1ms)[0m [1m[34mSELECT COUNT(*) FROM "micro_posts" WHERE "micro_posts"."user_id" = $1 AND "micro_posts"."id" = $2[0m [["user_id", 4], ["id", 7]]
|
||||||
|
2016-12-27T14:26:44.523387+00:00 app[web.1]: D, [2016-12-27T14:26:44.523325 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[35m (0.8ms)[0m [1m[34mSELECT COUNT(*) FROM "micro_posts" WHERE "micro_posts"."user_id" = $1 AND "micro_posts"."id" = $2[0m [["user_id", 4], ["id", 6]]
|
||||||
|
2016-12-27T14:26:44.525175+00:00 app[web.1]: D, [2016-12-27T14:26:44.525121 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[35m (0.8ms)[0m [1m[34mSELECT COUNT(*) FROM "micro_posts" WHERE "micro_posts"."user_id" = $1 AND "micro_posts"."id" = $2[0m [["user_id", 4], ["id", 5]]
|
||||||
|
2016-12-27T14:26:44.526840+00:00 app[web.1]: D, [2016-12-27T14:26:44.526785 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[35m (0.8ms)[0m [1m[34mSELECT COUNT(*) FROM "micro_posts" WHERE "micro_posts"."user_id" = $1 AND "micro_posts"."id" = $2[0m [["user_id", 4], ["id", 4]]
|
||||||
|
2016-12-27T14:26:44.527609+00:00 app[web.1]: D, [2016-12-27T14:26:44.527563 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[35m (0.6ms)[0m [1m[35mBEGIN[0m
|
||||||
|
2016-12-27T14:26:44.529719+00:00 app[web.1]: D, [2016-12-27T14:26:44.529663 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[36mMicroPost Load (0.8ms)[0m [1m[37mSELECT "micro_posts".* FROM "micro_posts" WHERE "micro_posts"."id" = $1 LIMIT $2 FOR UPDATE[0m [["id", 4], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:26:44.531628+00:00 app[web.1]: D, [2016-12-27T14:26:44.531560 #4] DEBUG -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] [1m[35m (1.6ms)[0m [1m[35mCOMMIT[0m
|
||||||
|
2016-12-27T14:26:44.532749+00:00 app[web.1]: I, [2016-12-27T14:26:44.532686 #4] INFO -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] Rendered main/main.html.erb within layouts/application (25.9ms)
|
||||||
|
2016-12-27T14:26:44.532962+00:00 app[web.1]: I, [2016-12-27T14:26:44.532910 #4] INFO -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] Completed 500 Internal Server Error in 74ms (ActiveRecord: 16.0ms)
|
||||||
|
2016-12-27T14:26:44.533988+00:00 app[web.1]: F, [2016-12-27T14:26:44.533939 #4] FATAL -- : [aea6357e-ec23-41ea-aeed-4192484c6e92]
|
||||||
|
2016-12-27T14:26:44.534039+00:00 app[web.1]: F, [2016-12-27T14:26:44.533991 #4] FATAL -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] ActionView::Template::Error (undefined method `split' for nil:NilClass):
|
||||||
|
2016-12-27T14:26:44.534252+00:00 app[web.1]: F, [2016-12-27T14:26:44.534209 #4] FATAL -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] 35: <% if micro_post_belong_to_user(micro_post["postid"], @user) == false %>
|
||||||
|
2016-12-27T14:26:44.534253+00:00 app[web.1]: [aea6357e-ec23-41ea-aeed-4192484c6e92] 36: <% if micro_post["type"] == "组团信息" %>
|
||||||
|
2016-12-27T14:26:44.534254+00:00 app[web.1]: [aea6357e-ec23-41ea-aeed-4192484c6e92] 37: <div class="social-button">
|
||||||
|
2016-12-27T14:26:44.534254+00:00 app[web.1]: [aea6357e-ec23-41ea-aeed-4192484c6e92] 38: <% if joinded_activity(micro_post["postid"], @user.name) %>
|
||||||
|
2016-12-27T14:26:44.534255+00:00 app[web.1]: [aea6357e-ec23-41ea-aeed-4192484c6e92] 39: <button class="btn btn-lg btn-success-outline activity">取消报名</button>
|
||||||
|
2016-12-27T14:26:44.534255+00:00 app[web.1]: [aea6357e-ec23-41ea-aeed-4192484c6e92] 40: <div class="activity-detail text-center"></div>
|
||||||
|
2016-12-27T14:26:44.534256+00:00 app[web.1]: [aea6357e-ec23-41ea-aeed-4192484c6e92] 41: <% else %>
|
||||||
|
2016-12-27T14:26:44.534595+00:00 app[web.1]: F, [2016-12-27T14:26:44.534293 #4] FATAL -- : [aea6357e-ec23-41ea-aeed-4192484c6e92] app/helpers/main_helper.rb:84:in `joinded_activity'
|
||||||
|
2016-12-27T14:26:44.534285+00:00 app[web.1]: F, [2016-12-27T14:26:44.534249 #4] FATAL -- : [aea6357e-ec23-41ea-aeed-4192484c6e92]
|
||||||
|
2016-12-27T14:26:44.534597+00:00 app[web.1]: [aea6357e-ec23-41ea-aeed-4192484c6e92] app/views/main/main.html.erb:38:in `block in _app_views_main_main_html_erb___4319673276589869370_70143703684160'
|
||||||
|
2016-12-27T14:26:44.534598+00:00 app[web.1]: [aea6357e-ec23-41ea-aeed-4192484c6e92] app/views/main/main.html.erb:9:in `each'
|
||||||
|
2016-12-27T14:26:44.534598+00:00 app[web.1]: [aea6357e-ec23-41ea-aeed-4192484c6e92] app/views/main/main.html.erb:9:in `_app_views_main_main_html_erb___4319673276589869370_70143703684160'
|
||||||
|
2016-12-27T14:26:44.534599+00:00 app[web.1]: [aea6357e-ec23-41ea-aeed-4192484c6e92] app/controllers/main_controller.rb:20:in `show'
|
||||||
|
2016-12-27T14:26:44.535884+00:00 heroku[router]: at=info method=GET path="/main" host=se-guoren-test.herokuapp.com request_id=aea6357e-ec23-41ea-aeed-4192484c6e92 fwd="121.195.114.11" dyno=web.1 connect=1ms service=80ms status=500 bytes=1669
|
||||||
|
2016-12-27T14:26:45.223095+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=se-guoren-test.herokuapp.com request_id=0d25c158-b1da-4546-a322-e48a2230ab61 fwd="121.195.114.11" dyno=web.1 connect=1ms service=2ms status=304 bytes=48
|
||||||
|
2016-12-27T14:29:29.932926+00:00 heroku[router]: at=info method=GET path="/" host=se-guoren-test.herokuapp.com request_id=18e46fba-6a36-458f-9843-5dba1ac4b9e5 fwd="121.195.114.11" dyno=web.1 connect=0ms service=7ms status=302 bytes=828
|
||||||
|
2016-12-27T14:29:29.930708+00:00 app[web.1]: I, [2016-12-27T14:29:29.930627 #4] INFO -- : [18e46fba-6a36-458f-9843-5dba1ac4b9e5] Started GET "/" for 121.195.114.11 at 2016-12-27 14:29:29 +0000
|
||||||
|
2016-12-27T14:29:29.931476+00:00 app[web.1]: I, [2016-12-27T14:29:29.931414 #4] INFO -- : [18e46fba-6a36-458f-9843-5dba1ac4b9e5] Processing by LoginController#init as HTML
|
||||||
|
2016-12-27T14:29:29.936110+00:00 app[web.1]: I, [2016-12-27T14:29:29.935669 #4] INFO -- : [18e46fba-6a36-458f-9843-5dba1ac4b9e5] Redirected to http://se-guoren-test.herokuapp.com/main
|
||||||
|
2016-12-27T14:29:29.935213+00:00 app[web.1]: D, [2016-12-27T14:29:29.935144 #4] DEBUG -- : [18e46fba-6a36-458f-9843-5dba1ac4b9e5] [1m[36mUser Load (1.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 4], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:29:29.936286+00:00 app[web.1]: I, [2016-12-27T14:29:29.936233 #4] INFO -- : [18e46fba-6a36-458f-9843-5dba1ac4b9e5] Completed 302 Found in 5ms (ActiveRecord: 1.0ms)
|
||||||
|
2016-12-27T14:29:30.436680+00:00 app[web.1]: I, [2016-12-27T14:29:30.436607 #4] INFO -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] Started GET "/main" for 121.195.114.11 at 2016-12-27 14:29:30 +0000
|
||||||
|
2016-12-27T14:29:30.437590+00:00 app[web.1]: I, [2016-12-27T14:29:30.437541 #4] INFO -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] Processing by MainController#show as HTML
|
||||||
|
2016-12-27T14:29:30.440124+00:00 app[web.1]: D, [2016-12-27T14:29:30.440073 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[36mUser Load (1.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 4], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:29:30.443043+00:00 app[web.1]: D, [2016-12-27T14:29:30.442991 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[35m (1.1ms)[0m [1m[34mSELECT COUNT(*) FROM "micro_posts" WHERE "micro_posts"."post_type" IN (1, 2, 3)[0m
|
||||||
|
2016-12-27T14:29:30.444967+00:00 app[web.1]: D, [2016-12-27T14:29:30.444886 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[36mMicroPost Load (0.9ms)[0m [1m[34mSELECT "micro_posts".* FROM "micro_posts" WHERE "micro_posts"."post_type" IN (1, 2, 3) ORDER BY "micro_posts"."post_time" DESC LIMIT $1 OFFSET $2[0m [["LIMIT", 10], ["OFFSET", 0]]
|
||||||
|
2016-12-27T14:29:30.448145+00:00 app[web.1]: D, [2016-12-27T14:29:30.448090 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[36mUser Load (0.9ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 3], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:29:30.451687+00:00 app[web.1]: D, [2016-12-27T14:29:30.451150 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[36mUser Load (1.1ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 2], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:29:30.453803+00:00 app[web.1]: D, [2016-12-27T14:29:30.453735 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[36mCACHE (0.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 2], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:29:30.456533+00:00 app[web.1]: D, [2016-12-27T14:29:30.456469 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[36mUser Load (0.9ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 1], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:29:30.458003+00:00 app[web.1]: D, [2016-12-27T14:29:30.457946 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[36mCACHE (0.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 1], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:29:30.459203+00:00 app[web.1]: D, [2016-12-27T14:29:30.459148 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[36mCACHE (0.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 1], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:29:30.460470+00:00 app[web.1]: D, [2016-12-27T14:29:30.460401 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[36mCACHE (0.0ms)[0m [1m[34mSELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2[0m [["id", 1], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:29:30.461628+00:00 app[web.1]: I, [2016-12-27T14:29:30.461556 #4] INFO -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] Rendering main/main.html.erb within layouts/application
|
||||||
|
2016-12-27T14:29:30.461986+00:00 app[web.1]: I, [2016-12-27T14:29:30.461928 #4] INFO -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] Rendered layouts/_nav.html.erb (0.1ms)
|
||||||
|
2016-12-27T14:29:30.464536+00:00 app[web.1]: D, [2016-12-27T14:29:30.464473 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[35m (0.9ms)[0m [1m[34mSELECT COUNT(*) FROM "micro_posts" WHERE "micro_posts"."user_id" = $1 AND "micro_posts"."id" = $2[0m [["user_id", 4], ["id", 7]]
|
||||||
|
2016-12-27T14:29:30.466248+00:00 app[web.1]: D, [2016-12-27T14:29:30.466190 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[35m (0.8ms)[0m [1m[34mSELECT COUNT(*) FROM "micro_posts" WHERE "micro_posts"."user_id" = $1 AND "micro_posts"."id" = $2[0m [["user_id", 4], ["id", 6]]
|
||||||
|
2016-12-27T14:29:30.467999+00:00 app[web.1]: D, [2016-12-27T14:29:30.467925 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[35m (0.7ms)[0m [1m[34mSELECT COUNT(*) FROM "micro_posts" WHERE "micro_posts"."user_id" = $1 AND "micro_posts"."id" = $2[0m [["user_id", 4], ["id", 5]]
|
||||||
|
2016-12-27T14:29:30.469758+00:00 app[web.1]: D, [2016-12-27T14:29:30.469701 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[35m (0.9ms)[0m [1m[34mSELECT COUNT(*) FROM "micro_posts" WHERE "micro_posts"."user_id" = $1 AND "micro_posts"."id" = $2[0m [["user_id", 4], ["id", 4]]
|
||||||
|
2016-12-27T14:29:30.474100+00:00 app[web.1]: D, [2016-12-27T14:29:30.474038 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[35m (4.1ms)[0m [1m[35mBEGIN[0m
|
||||||
|
2016-12-27T14:29:30.475980+00:00 app[web.1]: D, [2016-12-27T14:29:30.475926 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[36mMicroPost Load (1.1ms)[0m [1m[37mSELECT "micro_posts".* FROM "micro_posts" WHERE "micro_posts"."id" = $1 LIMIT $2 FOR UPDATE[0m [["id", 4], ["LIMIT", 1]]
|
||||||
|
2016-12-27T14:29:30.477880+00:00 app[web.1]: D, [2016-12-27T14:29:30.477830 #4] DEBUG -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] [1m[35m (1.6ms)[0m [1m[35mCOMMIT[0m
|
||||||
|
2016-12-27T14:29:30.479027+00:00 app[web.1]: I, [2016-12-27T14:29:30.478976 #4] INFO -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] Rendered main/main.html.erb within layouts/application (17.3ms)
|
||||||
|
2016-12-27T14:29:30.479182+00:00 app[web.1]: I, [2016-12-27T14:29:30.479139 #4] INFO -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] Completed 500 Internal Server Error in 41ms (ActiveRecord: 16.1ms)
|
||||||
|
2016-12-27T14:29:30.480397+00:00 app[web.1]: F, [2016-12-27T14:29:30.480330 #4] FATAL -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca]
|
||||||
|
2016-12-27T14:29:30.480471+00:00 app[web.1]: F, [2016-12-27T14:29:30.480409 #4] FATAL -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] ActionView::Template::Error (undefined method `split' for nil:NilClass):
|
||||||
|
2016-12-27T14:29:30.481135+00:00 app[web.1]: F, [2016-12-27T14:29:30.481086 #4] FATAL -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] 35: <% if micro_post_belong_to_user(micro_post["postid"], @user) == false %>
|
||||||
|
2016-12-27T14:29:30.481136+00:00 app[web.1]: [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] 36: <% if micro_post["type"] == "组团信息" %>
|
||||||
|
2016-12-27T14:29:30.481137+00:00 app[web.1]: [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] 37: <div class="social-button">
|
||||||
|
2016-12-27T14:29:30.481137+00:00 app[web.1]: [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] 38: <% if joinded_activity(micro_post["postid"], @user.name) %>
|
||||||
|
2016-12-27T14:29:30.481138+00:00 app[web.1]: [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] 39: <button class="btn btn-lg btn-success-outline activity">取消报名</button>
|
||||||
|
2016-12-27T14:29:30.481139+00:00 app[web.1]: [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] 40: <div class="activity-detail text-center"></div>
|
||||||
|
2016-12-27T14:29:30.481139+00:00 app[web.1]: [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] 41: <% else %>
|
||||||
|
2016-12-27T14:29:30.481185+00:00 app[web.1]: F, [2016-12-27T14:29:30.481134 #4] FATAL -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca]
|
||||||
|
2016-12-27T14:29:30.481258+00:00 app[web.1]: F, [2016-12-27T14:29:30.481202 #4] FATAL -- : [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] app/helpers/main_helper.rb:84:in `joinded_activity'
|
||||||
|
2016-12-27T14:29:30.481259+00:00 app[web.1]: [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] app/views/main/main.html.erb:38:in `block in _app_views_main_main_html_erb___4319673276589869370_70143703684160'
|
||||||
|
2016-12-27T14:29:30.481260+00:00 app[web.1]: [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] app/views/main/main.html.erb:9:in `each'
|
||||||
|
2016-12-27T14:29:30.481260+00:00 app[web.1]: [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] app/views/main/main.html.erb:9:in `_app_views_main_main_html_erb___4319673276589869370_70143703684160'
|
||||||
|
2016-12-27T14:29:30.481261+00:00 app[web.1]: [eae3fb5a-320d-4195-90cf-49a09fc7b6ca] app/controllers/main_controller.rb:20:in `show'
|
||||||
|
2016-12-27T14:29:30.477775+00:00 heroku[router]: at=info method=GET path="/main" host=se-guoren-test.herokuapp.com request_id=eae3fb5a-320d-4195-90cf-49a09fc7b6ca fwd="121.195.114.11" dyno=web.1 connect=0ms service=47ms status=500 bytes=1669
|
||||||
|
2016-12-27T14:29:31.399894+00:00 heroku[router]: at=info method=GET path="/favicon.ico" host=se-guoren-test.herokuapp.com request_id=b29e3681-6702-4e54-812e-f17760fa4d4a fwd="121.195.114.11" dyno=web.1 connect=0ms service=3ms status=304 bytes=48
|
|
@ -134,12 +134,26 @@
|
||||||
.widget-container .heading [class^="icon-"], .widget-container .heading [class*="icon-"] {
|
.widget-container .heading [class^="icon-"], .widget-container .heading [class*="icon-"] {
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pagination .previous_page {
|
.pagination .previous_page {
|
||||||
font-size: 2em;
|
font-size: 2em;
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.pagination .next_page {
|
.pagination .next_page {
|
||||||
font-size: 2em;
|
font-size: 2em;
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.posts .micro-post .widget-container.scrollable {
|
||||||
|
height: 250px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.widget-container.fluid-height.scrollable.list.user-comments p {
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.activity-details p {
|
||||||
|
font-size: 1.2em;
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Preview all emails at http://localhost:3000/rails/mailers/user_mailer
|
||||||
|
class UserMailerPreview < ActionMailer::Preview
|
||||||
|
|
||||||
|
end
|
|
@ -0,0 +1,7 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class UserMailerTest < ActionMailer::TestCase
|
||||||
|
# test "the truth" do
|
||||||
|
# assert true
|
||||||
|
# end
|
||||||
|
end
|
120
多图片上传.html
120
多图片上传.html
|
@ -1,120 +0,0 @@
|
||||||
<HTML>
|
|
||||||
<HEAD>
|
|
||||||
<script type="text/javascript">
|
|
||||||
var i = 0; // 用来动态生成span,upfile的id
|
|
||||||
function addAttachmentToList()
|
|
||||||
{
|
|
||||||
if (findAttachment(event.srcElement.value)) return; //如果此文档已在图片列表中则不再添加
|
|
||||||
|
|
||||||
// 动态创建图片信息栏并添加到图片列表中
|
|
||||||
var span = document.createElement('span');
|
|
||||||
span.id = '_attachment' + i;
|
|
||||||
span.innerHTML = extractFileName(event.srcElement.value) + ' <a href="javascript:delAttachment(' + (i++) + ')"><font color="blue">删除</font></a><br/>';
|
|
||||||
span.title = event.srcElement.value;
|
|
||||||
G('attachmentList').appendChild(span);
|
|
||||||
|
|
||||||
// 显示图片列表并变换添加图片按钮文本
|
|
||||||
if (G('attachmentList').style.display == 'none')
|
|
||||||
{
|
|
||||||
G('btnAdd').value = '继续添加';
|
|
||||||
G('attachmentList').style.display = '';
|
|
||||||
G('btnClear').style.display = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
G('total').innerText = '当前选择上传'+ G('attachmentList').childNodes.length + '个图片';
|
|
||||||
}
|
|
||||||
|
|
||||||
function selectAttachment()
|
|
||||||
{
|
|
||||||
// 先清除无效动态生成的多余upfile
|
|
||||||
cleanInvalidUpfile();
|
|
||||||
|
|
||||||
// 动态创建上传控件并与span对应
|
|
||||||
var upfile = '<input type="file" style="display:none" onchange="addAttachmentToList();" id="_upfile'+i+'">';
|
|
||||||
document.body.insertAdjacentHTML('beforeEnd', upfile);
|
|
||||||
G('_upfile'+i).click();
|
|
||||||
}
|
|
||||||
|
|
||||||
function extractFileName(fn)
|
|
||||||
{
|
|
||||||
return fn.substr(fn.lastIndexOf('\\')+1);
|
|
||||||
}
|
|
||||||
|
|
||||||
function findAttachment(fn)
|
|
||||||
{
|
|
||||||
var o = G('attachmentList').getElementsByTagName('span');
|
|
||||||
for(var i=0;i<o.length;i++)
|
|
||||||
if (o[i].title == fn) return true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function delAttachment(id)
|
|
||||||
{
|
|
||||||
G('attachmentList').removeChild(G('_attachment'+id));
|
|
||||||
document.body.removeChild(G('_upfile'+id));
|
|
||||||
|
|
||||||
// 当图片列表为空则不显示并且变化添加图片按钮文本
|
|
||||||
if (G('attachmentList').childNodes.length == 0)
|
|
||||||
{
|
|
||||||
G('btnAdd').value = '添加图片';
|
|
||||||
G('attachmentList').style.display = 'none';
|
|
||||||
G('btnClear').style.display = 'none';
|
|
||||||
}
|
|
||||||
|
|
||||||
G('total').innerText = '当前选择上传'+ G('attachmentList').childNodes.length + '个图片';
|
|
||||||
}
|
|
||||||
|
|
||||||
function cleanInvalidUpfile()
|
|
||||||
{
|
|
||||||
var o = document.body.getElementsByTagName('input');
|
|
||||||
for(var i=o.length-1;i>=0;i--)
|
|
||||||
if (o[i].type == 'file' && o[i].id.indexOf('_upfile') == 0)
|
|
||||||
{
|
|
||||||
if (!G('_attachment'+o[i].id.substr(7)))
|
|
||||||
document.body.removeChild(o[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function clearAttachment()
|
|
||||||
{
|
|
||||||
var o = G('attachmentList').childNodes;
|
|
||||||
for(var i=o.length-1;i>=0;i--)
|
|
||||||
G('attachmentList').removeChild(o[i]);
|
|
||||||
|
|
||||||
o = document.body.getElementsByTagName('input');
|
|
||||||
for(var i=o.length-1;i>=0;i--)
|
|
||||||
if (o[i].type == 'file' && o[i].id.indexOf('_upfile') == 0)
|
|
||||||
{
|
|
||||||
document.body.removeChild(o[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
G('btnAdd').value = '添加图片';
|
|
||||||
G('attachmentList').style.display = 'none';
|
|
||||||
G('btnClear').style.display = 'none';
|
|
||||||
G('total').innerText = '当前选择上传0个图片';
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function getAttachmentInfo()
|
|
||||||
{
|
|
||||||
// 已知的js获取本地文件大小的三种方式
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function G(id)
|
|
||||||
{
|
|
||||||
return document.getElementById(id);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</HEAD>
|
|
||||||
<BODY>
|
|
||||||
<form action="#">
|
|
||||||
<input type="button" value="添加图片" id="btnAdd" onclick="selectAttachment();">
|
|
||||||
<input type="button" value="清空图片" id="btnClear" style="display:none" onclick="clearAttachment();">
|
|
||||||
<div id="attachmentList" style="margin:3px 0px 0px 0px;padding:4px 3px 4px 3px;display:none;border:1px solid "></div>
|
|
||||||
<div id="total" style="margin:3px 0px 0px 0px;">当前选择上传0个图片</div>
|
|
||||||
<div style="padding:10px 3px"><input type="submit" value="上传"></div>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
</BODY>
|
|
||||||
</HTML>
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,27 +0,0 @@
|
||||||
# 张裕
|
|
||||||
------------------------
|
|
||||||
分页功能 张裕
|
|
||||||
简单的组团、失物招领动态 张裕
|
|
||||||
网站整体时间修改 张裕
|
|
||||||
动态排行榜(评论数、组团人数) 张裕
|
|
||||||
用户个人动态的评论显示 尹
|
|
||||||
用户个人动态的删除 尹
|
|
||||||
|
|
||||||
# 朱京乔
|
|
||||||
------------------------
|
|
||||||
多图上传 朱京乔
|
|
||||||
|
|
||||||
# 尹吉宪
|
|
||||||
------------------------
|
|
||||||
用户个人资料修改 尹
|
|
||||||
忘记密码功能的实现 尹
|
|
||||||
|
|
||||||
# 白芳洲
|
|
||||||
------------------------
|
|
||||||
测试 白
|
|
||||||
整体代码检测与bug捕捉 白
|
|
||||||
|
|
||||||
# 倪令斌
|
|
||||||
-------------------------
|
|
||||||
部署 倪
|
|
||||||
公告 倪
|
|
Loading…
Reference in New Issue