一对一的关系出了问题
我有一些比赛,我希望得到一个比赛的分数.
我的Match.rb
has_one :score, :dependent => :destroy
Run Code Online (Sandbox Code Playgroud)
我的分数.rb
belongs_to :match
Run Code Online (Sandbox Code Playgroud)
我的scores_controller.rb
def new
@match = Match.find(params[:match_id])
@score = @match.score.new
end
def create
@match = Match.find(params[:match_id])
@score = @match.score.create(params[:score])
end
Run Code Online (Sandbox Code Playgroud)
我的routes.rb
resources :matches do
resources :scores
end
Run Code Online (Sandbox Code Playgroud)
我的分数/ new.html.haml
= form_for([@match, @match.score.build]) do |f|
= f.label :score1
= f.text_field :score1
%br
= f.label :score2
=f.text_field :score2
%br
= f.submit
Run Code Online (Sandbox Code Playgroud)
我得到的错误
undefined method `new' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)
到目前为止,我还没有处理过一对一的关系,因为我对RoR很新,有什么建议吗?
编辑
编辑我的代码以匹配create_score和build_score,似乎工作.但现在我有一些奇怪的行为.
在我的score.rb
attr_accessible :score1, :score2
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在我的match/show.html.haml中调用时
= @match.score.score1
Run Code Online (Sandbox Code Playgroud)
我得到一个未知的方法调用或者根本没有看到任何东西......但是如果我只是打电话
= @match.score
Run Code Online (Sandbox Code Playgroud)
我得到一个得分对象(例如#)#
编辑2 …
我需要将javascript文件重定向到用户指定的给定URI.
这是我如何做到这一点的简单示例:
function redirect(uri) {
if(navigator.userAgent.match(/Android/i)) {
document.location.href=uri;
}
window.location.replace(uri);
}
Run Code Online (Sandbox Code Playgroud)
这适用于除Android设备之外的所有内容.iOS和所有现代Webbrowsers都支持window.location.replace(...),但Android设备不支持.
但是,如果我现在尝试使用此功能重定向,让我们说" http://www.google.com ",Android设备无法实际重定向到给定的网址.
现在只是我现在在这里愚蠢还是有另一个问题?
诚恳
ps重定向函数被调用作为发送的XML请求的回调,但这根本不应该是一个问题.
我目前使用node.js和express.js.对于我当前的项目,我需要访问HTTP标头的原始字符串(charset和accpeted).
express.js中有一个函数可以返回那些字符集和接受的标题,但是,这些函数按质量排序,因此在我需要的这种特殊情况下不能用于我.
req.accepted // Returns sorted array of accepted header
req.acceptedCharsets // Returns sorted array of accepted lang header
Run Code Online (Sandbox Code Playgroud)
但是,我需要原始字符串(iso-8859-5; q = .2,unicode-1-1; q = 0.8,text/*; q = .5,application/json).
现在有一种方法可以在我的快递应用程序中访问这些原始字符串吗?
最好的问候,Crispin