我有一个测试控制器的规范如下
require 'spec_helper'
describe ProductsController do
setup :activate_authlogic
describe "user not logged in" do
it "should not GET index" do
get :index
response.should redirect_to(login_path)
end
end
describe "user logged in" do
before(:each) do
UserSession.create :username => "rohit", :password => "test123"
end
it "should GET index" do
get :index
response.should redirect_to(products_path)
end
end
end
Run Code Online (Sandbox Code Playgroud)
我也在spec_helper.rb中使用过这一行
require "authlogic/testcase"
Run Code Online (Sandbox Code Playgroud)
"用户未登录通过"但"登录用户"的测试失败
'ProductsController user is logged in should GET index' FAILED
expected redirect to "/products", got no redirect
Run Code Online (Sandbox Code Playgroud) 我想在我的rails应用程序中集成ActiveMerchant.我有一些计划,如果订阅限制用户访问.正如你们所有人都知道基于订阅的应用程序是什么,我不打算解释我的应用程序.请告诉我一些实现这一目标的例子.我已经查看过轨道广播141到146,但Ryan只演示了Paypal Web Payments标准和Paypal Web Payments Pro.我也读了很多博客,但没有帮助.
请帮忙.
提前致谢.
我有rails 2.3和ruby 1.8.7
我想只创建一个控制器并查看它的文件.在rails2.3中是否有任何命令可以帮助我做到这一点.我知道这可以在rails 3中完成,但有没有办法在rails 2.3中执行此操作
我的Windows机器上安装了Ruby 1.8.7和Ruby 1.9.2.
在我的控制台中,当我这样做时,ruby -v它给了我Ruby 1.7.7
现在,当我尝试
gem install rails -v 2.3.8
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
ERROR: http://gems.rubyforge.org/ does not appear to be a repository
ERROR: could not find gem rails locally or in a repository
Run Code Online (Sandbox Code Playgroud)
我的RubyGems版本显示1.3.5,所以我尝试更新它
gem update --system
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
Updating RubyGems
ERROR: http://gems.rubyforge.org/ does not appear to be a repository
ERROR: While executing gem ... (Gem::RemoteFetcher::FetchError)
Errno::E10013: An attempt was made to access a socket in a way forbidden by
its access permissions. - connect(2) (http://gems.rubyforge.org/yaml)`
Run Code Online (Sandbox Code Playgroud)
出了什么问题?
我想在我的表中有一个列,其中auto_increements在一个外键的范围内.
id | foreign_key_column | this_column_i_want
--------------------------------------------------------
1 | 1 | 1
2 | 1 | 2
3 | 1 | 3
4 | 2 | 1
5 | 2 | 2
6 | 3 | 1
Run Code Online (Sandbox Code Playgroud)
通过rails迁移可以实现这种模式吗?
请考虑以下场景:此表表示Orders表.如果此表存储来自多个商店的订单,则外键列将为store_id.现在,不同的商店需要他们的发票在他们的范围内顺序.早期的发票是全球性的.
因此,每个商店的发票编号必须从1开始,并根据为该特定商店创建的记录继续增加.
希望这有助于解释这个问题.
在我的控制器中,我有一些返回json以及xml数据的方法。我需要测试这些动作。为了测试json部分,我找到了这个参考,它工作正常。现在,我需要测试XML部分的操作。任何能提供帮助或建议的人都受到欢迎,我已经挠头一个小时了,但无济于事。请帮忙。提前致谢。
我有一个数组
arr = [1,2,3,4,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)
现在,我要检查数组中的值是否连续。
具体来说,我想要这个
First Check给出第一个和第二个元素是连续的,而下一个元素不是连续的,则算法必须从连续编号开始的地方返回第一个元素
喜欢
First Check will give 1
Second Check will give 6
and so on...
Run Code Online (Sandbox Code Playgroud)
请事先帮助
我有一个日期列的日模型.我必须实现验证,即日期列不得有过去的日期.如果日期是过去的日期,则不能将其保存到数据库并在其上提供相应的错误消息.我知道我可以在控制器中进行此验证,但我认为它违反了MVC规则,即保持业务逻辑远离控制器.
有没有办法将此验证放在模型中或其他任何地方,如果日期是过去的日期,那么它必须重定向回新的操作,并显示消息"日期不能是过去的日期"
请提前帮助,谢谢
在views/products/edit.html.erb我使用:
<%= form_for(:product, :url => {:action => 'update', :id => @product.id}) do |f| %>
Run Code Online (Sandbox Code Playgroud)
产生:
<form method="post" action="/aircons/8" accept-charset="UTF-8">
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
The action '8' could not be found for ProductsController
Run Code Online (Sandbox Code Playgroud)
尝试更新产品时id=8.
我认为表格的方法应该是put.是对的吗 ?我该怎么解决这个问题?
一些控制器代码:
def edit
@product = Product.find(params[:id])
end
def update
update_params_with_new_values(params)
@product = Product.find(params[:id])
if @product.update_attributes(params[:product])
flash[:notice] = "Product updated successfully."
redirect_to(:product => 'index')
else
render('edit')
end
end
def update_params_with_new_values(params)
params[:product][:shop_id] = Shop.create(:name => params[:new_shop]).id if params[:product][:shop_id] == "new_shop"
params[:product][:brand_id] = Brand.create(:name => …Run Code Online (Sandbox Code Playgroud) 例如:
<script type="text/javascript">
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("Text",ev.target.id);
}
function drop(ev) {
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
ev.preventDefault();
}
</script>
<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<img id="x" src="X.png" draggable="true" ondragstart="drag(event)" width="75" height="75" />
Run Code Online (Sandbox Code Playgroud)
我想拖动x.png文件并将其放入div中,但x.png如果我这样做,它将移动到div中.我怎么能实现这一点,在我拖放之后,div得到了一个x.png,而原始版本x.png仍然在哪里?
ruby ×6
javascript ×2
rspec ×2
rubygems ×2
testing ×2
arrays ×1
authlogic ×1
datetime ×1
form-for ×1
html5 ×1
installation ×1
paypal ×1
postgresql ×1
scaffolding ×1
schema ×1
sql ×1
validation ×1
windows ×1
xml ×1