我对Rails开发比较陌生,而且我有一个小的关联问题.我想命名一个与它所链接的模型不同的关联.
我有以下两种型号:
class User < ActiveRecord::Base
has_many :events
end
class Event < ActiveRecord::Base
belongs_to :admin, :class_name => "User" # So we can call event.admin to retrieve the User who owns this Event
end
Run Code Online (Sandbox Code Playgroud)
我建立一个用户如下:
event = event.create! :title => "New Event"
user = User.create! :username => "thinkswan"
user.events << event
user.save
Run Code Online (Sandbox Code Playgroud)
当我跳进控制台时,我收到以下信息:
irb> user = User.find(1)
irb> user.events
=> [#<Event id: 1, title: "New Event", user_id: 1, created_at: "2011-06-09 06:41:09", updated_at: "2011-06-09 06:41:10">]
irb> event = Event.find(1)
irb> event.user_id
=> …Run Code Online (Sandbox Code Playgroud) ruby activerecord ruby-on-rails associations ruby-on-rails-3
我正在使用Thin Web服务器来提供我的Rails应用程序.
thin start服务http请求启动服务器.thin start --ssl服务https请求启动服务器.有没有办法同时提供thin服务http和https请求?
我问的原因是因为当我redirect_to some_path在我的控制器中使用它们时,它们会重定向到http.由于thin提供https请求,因此不会呈现任何内容.
注:我使用的是Rack::SSL在Rails 3.0.7.
我需要在我的应用程序中的所有路由上强制使用SSL,除了landing#index.
在config/application.rb,我有:
config.force_ssl = true
Run Code Online (Sandbox Code Playgroud)
然后landing_controller.rb,我有:
force_ssl :except => :index
Run Code Online (Sandbox Code Playgroud)
但是,所有路由仍然被重定向到https.
有谁知道如何在Rails 3.1+应用程序中有条件地强制SSL?
解:
将以下内容添加到您的Gemfile:
gem 'rack-ssl-enforcer'
Run Code Online (Sandbox Code Playgroud)
将以下内容添加到您的config/application.rb:
config.middleware.use Rack::SslEnforcer, :except => [ /\/$/ ], :strict => true
Run Code Online (Sandbox Code Playgroud) 我在将页面加载到已存在的颜色框中时遇到了一些麻烦.
我点击了一个由以下代码绑定的链接打开了一个颜色框:
$("a.ajaxAddPage").colorbox({
onComplete: function(){
$('ul#addPage li a').click(function() {
$.colorbox({href: $(this).attr('href')});
return false;
});
}
});
Run Code Online (Sandbox Code Playgroud)
以下HTML通过AJAX加载到该颜色框中:
<div class='colorboxWindow'>
<ul id='addPage'>
<li><a href='addCat.php'>Add Category</a></li>
<li><a href='addPage.php' class='current'>Add New Page</a></li>
<li><a href='addPage2.php'>Add Another Page</a></li>
</ul>
<h3>Add New Page...</h3>
</div>
Run Code Online (Sandbox Code Playgroud)
我正在尝试在单击它们时在当前颜色框中打开这3个链接中的每一个.使用onComplete上面的绑定,这适用于第一次单击,但下一次单击就像普通页面一样打开.
如果我添加其他onComplete的$.fn.colorbox()在上面的代码调用,那么第2点击也将加载在同一颜色框,但第3不会.
有没有办法将所有未来的点击绑定在同一个颜色框中打开?我对事件绑定还不太了解.
如果您需要澄清,请询问.
如果我正在开发一个概念验证应用程序,那么花时间编写自动化测试是否有意义?这是针对我是唯一开发人员的个人项目。
我认为此时自动化测试的唯一好处是:
与为此类项目编写自动化测试相关的一些缺点可能是:
任何人都可以提供在早期阶段为应用程序编写自动化测试的时间的利弊吗?
我正试图在客户端显示和隐藏推文,但jQuery正在折叠元素hide()并将其淡入其中show().
相关HTML:
<aside>
<div class="tweet-author">
<p class="name">Graham Swan</p>
<p class="position">Managing Partner</p>
</div>
<div class="tweet">
<blockquote>Just had the greatest cup of coffee ever!</blockquote>
<div class="clearfix">
<time>2 minutes ago <span>via</span> Twitter</time>
<a href="#">Hide Tweets</a>
</div>
</div>
</aside>
Run Code Online (Sandbox Code Playgroud)
相关的JavaScript:
// Hide tweets when "Hide Tweets" link is clicked
$(document).on('click', 'div.tweet > div.clearfix > a', function(e) {
e.preventDefault();
$("div.tweet").hide(function() {
$("div.tweet-author > p.name").html("Show Recent Tweets");
$("div.tweet-author > p.position").html("By the iNovia Team");
$("aside").addClass("click-to-show-tweets");
});
});
// Show tweets when "Show Recent …Run Code Online (Sandbox Code Playgroud) 我最近为一家公司制作了零件目录.它在Firefox,Chrome,Safari等中运行良好.
但是,在IE 7中,除了实际的部件页面本身之外,每个页面都有效:http://www.swstruckbodiesandtrailers.com/index.php? pageId = 69
它实际上锁定了整个浏览器,在查看源代码后,我不知道为什么.
有没有人有任何见解?它只是简单的HTML,CSS和几行jQuery - 没什么特别的.
我以前从未遇到过冻结整个浏览器的页面.
我有一个插件,可以让Facebook评论WordPress.用户已请求一项功能,该功能将在启用Facebook评论的帖子上隐藏默认的WordPress评论表单.
如何动态隐藏WP评论表?我知道我可以comment_form();从comments.php模板中注释掉,但我希望能够在点击按钮时隐藏/取消隐藏它.
它与comments_template过滤器有关吗?
html ×3
javascript ×3
jquery ×2
ruby ×2
ssl ×2
activerecord ×1
associations ×1
colorbox ×1
comments ×1
css ×1
filter ×1
freeze ×1
https ×1
rspec ×1
testing ×1
unit-testing ×1
wordpress ×1