我正在运行一个Rails 3.1.4应用程序,需要让一些页面使用force_ssl,但其他人我不想拥有SSL.是否与force_ssl相反,如force_http?问题是我有一些页面不需要是SSL,它们包含我无法使用https接收的元素(因此用户从浏览器中获取不安全的错误).
会发生什么事情,当有人进入force_ssl页面时,它工作正常,但是当他们转到其他不是force_ssl的页面时,他们会从浏览器收到不安全的页面错误,因为https仍然存在.因此,我想强制我无法使元素https的页面避免使用SSL(即强制它回到http).
先感谢您.
我有一个名为的模型Book,我想调整标准Book#new来显示10本书的字段,这样就可以一次创建10个而不是一个.
我查看了这个问题,发现如果我添加10.times到表单中,我可以重复表单.但是,我没有正确执行,因为保存了新记录,但所有字段都为null.
我想做的是:
我的看法:
<%= simple_form_for(@book) do |f| %>
<%= f.error_notification %>
<% 10.times do |index|%>
<%= f.input :title %>
<%= f.association :book_category %>
<% end %>
<%= f.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我的控制器与脚手架代码没有变化:
def new
@book = Book.new
end
def create
@book = Book.new(params[:book])
end
Run Code Online (Sandbox Code Playgroud) 我发现很多关于如何验证字段是否存在(如果另一个条件为真)的帖子,例如:
然而,我该如何反其道而行之呢?
我的用户有一个名为 的属性terms_of_service。
我如何最好地编写一个验证来检查terms_of_service == true是否存在?
我遇到了stack level too deep一个无限循环,但我无法弄明白为什么,所以我希望别人能发现它.
我的游戏模型中有这个方法:
def self.record_win_or_tie(game_id)
game = Game.find(game_id)
if game.home_team_score > game.away_team_score
game.home_team_won = true
game.save
end
end
Run Code Online (Sandbox Code Playgroud)
当我从控制台运行条件为真的游戏(即game.home_team_score大于game.away_team_score)时,如果一遍又一遍地运行相同的查询.
SELECT `games`.* FROM `games` WHERE `games`.`id` = 1 LIMIT 1
Run Code Online (Sandbox Code Playgroud)
如果我运行条件为false的game_id的代码,则查找游戏的查询只发生一次并且没有无限循环.
*更新*
我发现问题是我从GameObserver调用方法:
class GameObserver < ActiveRecord::Observer
def after_save(game)
Game.record_win_or_tie(game.id)
end
end
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何调整我的代码.要求是自动更新或者game.home_team_won或game.away_team_won有人更新后game.home_team_score或game.away_team_score.
好像我不能用观察者来做这件事.
我想按审核日期检索最后五篇文章,但我想按时间顺序(升序)显示它们.我该怎么做呢?
# controller
@recent_articles = Article.where("reviewed = ?", true).order("review_date DESC").limit(5)
# view
<% @recent_articles.each do |ra| %>
# articles sorted by review_date in ascending order
<% end %>
Run Code Online (Sandbox Code Playgroud)
我尝试在控制器中执行此操作,但它检索了最旧的五个review_dates(即它只是通过ASC顺序检索记录而不是重新排序已检索的数组):
@recent_articles = Article.where("reviewed = ?", true).order("review_date DESC").limit(5)
@recent_articles = @recent_articles.reorder("review_date ASC")
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Capistrano部署我的应用程序,但我收到此错误:
Your Gemfile.lock is corrupt. The following gem is missing from the DEPENDENCIES
section: 'nokogiri'
Run Code Online (Sandbox Code Playgroud)
我看到这个问题,不幸的是,解决方案(切换Bundler版本)对我不起作用: Travis报告了损坏的Gemfile.lock的奇怪消息
我试过:在添加到我之后删除gemfile.lock(和做一个bundle _1.10.6_ install),但我仍然得到同样的错误.nokogirigemfile
这是我的gemfile:
source 'http://rubygems.org'
gem 'rails', '4.2.5'
gem 'mysql2', '0.4.2'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails', '4.0.5'
gem 'turbolinks', '2.5.3'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'whenever', '0.9.4', :require => false
gem 'simple_form', '3.2.0'
gem 'devise', '3.5.2'
gem 'omniauth-facebook', '3.0.0' …Run Code Online (Sandbox Code Playgroud)