小编csc*_*ler的帖子

一对一:未定义的方法构建

一对一的关系出了问题

我有一些比赛,我希望得到一个比赛的分数.

我的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 …

ruby-on-rails ruby-on-rails-3

15
推荐指数
3
解决办法
1万
查看次数

Android重定向不起作用

我需要将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请求的回调,但这根本不应该是一个问题.

javascript android

9
推荐指数
1
解决办法
2万
查看次数

如何使用express.js在node.js中获取原始http头字符串

我目前使用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

javascript node.js express

4
推荐指数
1
解决办法
1万
查看次数