小编Len*_*onR的帖子

Rails 3嵌套模型表,使用accepts_nested_attributes_for深入2级

我的嵌套模型表单在第一级深度工作得很好.但我的印象是你可以使用accepts_nested_attributes_for深入了解多个级别.但是,当我尝试下面的代码时,"图像"属性被附加到顶级"问题"模型,它会在表单提交时因未知属性"图像"错误而中断.

我可以使用表单数据手动完成插入,但如果Rails可以自动处理它,那么显然会有更好的理由.

我究竟做错了什么?我试着改变| af | 在"字段为:图像做"到它自己的唯一名称,但它没有任何影响.

楷模:

class Question < ActiveRecord::Base
  has_one :answer
  accepts_nested_attributes_for :answer
end

class Answer < ActiveRecord::Base
  belongs_to :question
  has_one :image
  accepts_nested_attributes_for :image
end

class Image < ActiveRecord::Base
  belongs_to :answer
end
Run Code Online (Sandbox Code Playgroud)

控制器:

def new
    @question = Question.new
    answer = @question.build_answer
    image = answer.build_image

    @case_id = params[:id]

    render :layout => 'application', :template => '/questions/form' 
end

def create
  question_data = params[:question]
  @question = Question.new(question_data)
  if @question.save
  ...
end
Run Code Online (Sandbox Code Playgroud)

视图:

= form_for @question, :html => {:multipart => true} do |f| …
Run Code Online (Sandbox Code Playgroud)

forms multiple-models ruby-on-rails-3

12
推荐指数
1
解决办法
8477
查看次数

如何更改Heroku-Postgresql数据库密码

简单的问题,但我的谷歌搜索完全失败了我.

如何更改Heroku Rails应用程序的postgres数据库的密码?

postgresql heroku ruby-on-rails-3

11
推荐指数
3
解决办法
3689
查看次数

使用Rails 3和Heroku Net发送电子邮件:: SMTPSyntaxError:501语法错误

正如标题所说,我正在尝试使用Heroku和Rails 3进行简单的电子邮件.我正在使用这个Heroku指南:http: //devcenter.heroku.com/articles/smtp

这是我的代码:

我生成了一个看起来像这样的邮件:

class Invite < ActionMailer::Base
  def signup_notification(user)
    recipients "#{user.first_name} <#{user.email}>"
    from       "Test"
    subject    "Please activate your new account"
    sent_on    Time.now
    body       :var => 'testing'
  end
end
Run Code Online (Sandbox Code Playgroud)

我有一个观点 app/views/invite/signup_notification.rhtml

更新:我看到这.rhtml不适用于Rails 3所以我只是尝试.html.erb但我得到了相同的错误.

Your account has been created.
Username: 
Password: 
Visit this url to activate your account:
Run Code Online (Sandbox Code Playgroud)

然后在Heroku控制台中我这样做了:

user = User.new(:first_name => 'Me', :email => 'me@hotmail.com', :login => 'me', :password => '1234')
Run Code Online (Sandbox Code Playgroud)

然后这个:

Invite.deliver_signup_notification(user)
Run Code Online (Sandbox Code Playgroud)

如果得到这个错误:

Net::SMTPSyntaxError: 501 Syntax error
  /user/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:930:in …
Run Code Online (Sandbox Code Playgroud)

email-integration heroku ruby-on-rails-3

10
推荐指数
2
解决办法
7117
查看次数

Google Maps脚本中断了Safari TypeError:表达式'document.body'[null]的结果不是对象

我在我的网页上显示谷歌地图,它在除Safari之外的所有浏览器中都能正常工作.

Safri白了一页,JS错误说:

TypeError: Result of expression 'document.body' [null] is not an object.  maps.google.com/maps/api/js?sensor=true&region=nz&async=2&callback=initializeConfigMap:11
TypeError: Result of expression 'a' [null] is not an object.  maps.gstatic.com/intl/en_us/mapfiles/api-3/5/11/main.js:30
Run Code Online (Sandbox Code Playgroud)

这似乎来自的代码是我使用此行从谷歌链接到的脚本:

$.getScript("http://maps.google.com/maps/api/js?sensor=true&region=nz&async=2&callback=initializeConfigMap", function () {});
Run Code Online (Sandbox Code Playgroud)

该脚本如下所示:

window.google = window.google || {};
google.maps = google.maps || {};
(function() {

    function getScript(src) {
        var s = document.createElement('script');
        s.src = src;
        document.body.appendChild(s);
    }

    var modules = google.maps.modules = {};
    google.maps.__gjsload__ = function(name, text) {
        modules[name] = text;
    };

    google.maps.Load = function(apiLoad) {
        delete google.maps.Load;
        apiLoad([null,[[["http://mt0.googleapis.com/vt?lyrs=m@158\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=m@158\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"m@158"],[["http://khm0.googleapis.com/kh?v=88\u0026hl=en-US\u0026","http://khm1.googleapis.com/kh?v=88\u0026hl=en-US\u0026"],null,null,null,1,"88"],[["http://mt0.googleapis.com/vt?lyrs=h@158\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=h@158\u0026src=api\u0026hl=en-US\u0026"],null,null,"imgtp=png32\u0026",null,"h@158"],[["http://mt0.googleapis.com/vt?lyrs=t@127,r@158\u0026src=api\u0026hl=en-US\u0026","http://mt1.googleapis.com/vt?lyrs=t@127,r@158\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"t@127,r@158"],null,[[null,0,7,7,[[[330000000,1246050000],[386200000,1293600000]],[[366500000,1297000000],[386200000,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.14\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.14\u0026hl=en-US\u0026"]],[null,0,8,9,[[[330000000,1246050000],[386200000,1279600000]],[[345000000,1279600000],[386200000,1286700000]],[[348900000,1286700000],[386200000,1293600000]],[[354690000,1293600000],[386200000,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.14\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.14\u0026hl=en-US\u0026"]],[null,0,10,19,[[[329890840,1246055600],[386930130,1284960940]],[[344646740,1284960940],[386930130,1288476560]],[[350277470,1288476560],[386930130,1310531620]],[[370277730,1310531620],[386930130,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1.14\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1.14\u0026hl=en-US\u0026"]],[null,3,7,7,[[[330000000,1246050000],[386200000,1293600000]],[[366500000,1297000000],[386200000,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,8,9,[[[330000000,1246050000],[386200000,1279600000]],[[345000000,1279600000],[386200000,1286700000]],[[348900000,1286700000],[386200000,1293600000]],[[354690000,1293600000],[386200000,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]],[null,3,10,null,[[[329890840,1246055600],[386930130,1284960940]],[[344646740,1284960940],[386930130,1288476560]],[[350277470,1288476560],[386930130,1310531620]],[[370277730,1310531620],[386930130,1320034790]]],["http://mt0.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026","http://mt1.gmaptiles.co.kr/mt?v=kr1p.12\u0026hl=en-US\u0026"]]],[["http://cbk0.googleapis.com/cbk?","http://cbk1.googleapis.com/cbk?"]],[["http://khmdb0.googleapis.com/kh?v=40\u0026hl=en-US\u0026","http://khmdb1.googleapis.com/kh?v=40\u0026hl=en-US\u0026"],null,null,null,null,"40"],[["http://mt0.googleapis.com/mapslt?hl=en-US\u0026","http://mt1.googleapis.com/mapslt?hl=en-US\u0026"]],[["http://mt0.googleapis.com/mapslt/ft?hl=en-US\u0026","http://mt1.googleapis.com/mapslt/ft?hl=en-US\u0026"]],[["http://mt0.googleapis.com/vt?hl=en-US\u0026","http://mt1.googleapis.com/vt?hl=en-US\u0026"]]],["en-US","NZ",null,0,null,"http://maps.google.com","http://maps.gstatic.com/intl/en_us/mapfiles/","http://csi.gstatic.com","https://maps.googleapis.com","http://maps.googleapis.com"],["http://maps.gstatic.com/intl/en_us/mapfiles/api-3/5/11","3.5.11"],[3021543403],1.0,null,null,null,null,1,"initializeConfigMap",null,null,0,"http://khm.googleapis.com/mz?v=88\u0026"], loadScriptTime);
    };
    var loadScriptTime …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps google-maps-api-3

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

渲染设计编辑密码表单

我正在尝试在另一个视图中呈现Devise编辑密码表单,因为我不想复制编辑pw逻辑.

我尝试了以下(生成Devise视图后):

<%= render 'devise/passwords/edit' %>
<%= render 'devise/passwords/form' %>
Run Code Online (Sandbox Code Playgroud)

渲染上的其他一些变体似乎都给了我同样的错误:

"foo中的ActionView :: MissingTemplate #foo缺少部分设计/密码/编辑......"

这种变化:

  <%= render :file => 'devise/passwords/edit.html.erb' %>
Run Code Online (Sandbox Code Playgroud)

给了我一些希望,但以下错误:

"##:0x47ef0e0>"的未定义局部变量或方法"资源"

围绕这条线:

<%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
Run Code Online (Sandbox Code Playgroud)

这让我觉得我很接近(因为那是我想要的表单中的代码)但是该模板不应该使用隐藏的Devise控制器中的正确逻辑吗?或者我是否需要在路线文件中执行某些操作才能使其生效?

我离开了吗?

devise ruby-on-rails-3

5
推荐指数
1
解决办法
5409
查看次数

帮助获得第一个web2py Cron任务工作

我在Windows 7本地运行web2py并在Linux Ubuntu服务器上运行,但我无法让我的cron作业运行.

我的crontab看起来像这样:

*/1 * * * * root *autoemail/send_autoemails 
Run Code Online (Sandbox Code Playgroud)

并且我的功能在手动调用时工作正常.它也以

db.commit()
Run Code Online (Sandbox Code Playgroud)

除此之外,我不知道还有什么可以让它工作,虽然我真的不了解Cron上的所有web2py书籍部分,特别是涉及到软/硬/外部cron以及所有这些.

我看到一个web2py线程,也许cron将被替换?

也许这与此有关?在配置cron之前我还需要做些什么吗?

关于如何解决这个问题的任何想法都非常感谢.

cron web2py crontab

5
推荐指数
1
解决办法
2790
查看次数

EventMachine gem解决方法导致缺少dll文件ruby错误,Windows 7

在克隆我的第一个Rails 3.1.1应用程序时,我的第一个bundle install在eventmachine 0.12.10 gem上被阻塞了.(我正在运行Windows 7 32位)

我也使用宝石'瘦'.

我发现这篇帖子有同样的问题.

哪个版本的eventmachine能够在Windows中运行?

我在我的gemfile中集成了这一行:

gem "eventmachine", ">= 1.0.0.beta"
Run Code Online (Sandbox Code Playgroud)

这允许捆绑安装运行,但是当我启动rails服务器时,我得到一个带有头文件ruby.exe的Ruby弹出窗口 - 系统错误和文本

The program can't start because libgcc_s_sjlj-1.dll is missing from your computer.  Try reinstalling the program to fix this problem.
Run Code Online (Sandbox Code Playgroud)

单击"确定"后,我在控制台中收到此消息

Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
Run Code Online (Sandbox Code Playgroud)

然后是一个长堆栈跟踪(请求查看您是否认为这将有所帮助).

我看到EventMachine gem需要一个C++编译器.我在32位Windows 7机器上重新安装了MinGW,并将MinGW\bin添加到我的PATH变量中.

但是,当我查看该bin文件夹时,文件libgcc_s_sjlj-1.dll不存在,并且仍然存在相同的错误消息.我发现这个帖子关于2009年该文件夹的缺失,但我不确定该怎么做.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=539033

感谢你给与我的帮助.

c++ gem windows-7 eventmachine ruby-on-rails-3.1

5
推荐指数
2
解决办法
2428
查看次数

在本地和服务器上处理多个Git Head

我正在使用Linonde来托管我的git repos以及实际的站点文件.

git branch -r看起来像这样:

company/master
company/stage
origin/HEAD -> origin/master
origin/master
prod/master
Run Code Online (Sandbox Code Playgroud)

git branch看起来像这样:

master
stage
Run Code Online (Sandbox Code Playgroud)

我想我只是想让我的本地舞台分支指向我的公司/主人.当我这样做git push company stage它似乎更新我的服务器上的舞台头,但我想让它更新主头,这是我的网站似乎服务它的文件来自.或者我需要弄清楚如何将我的网站指向公司/舞台主管.

我试着删除我的分支并制作一个

git branch stage company/master
Run Code Online (Sandbox Code Playgroud)

因为我认为起点可能就是我所需要的.

在我尝试推送之后,我得到消息:

error: failed to push some refs to 'root@foo:~repos/project_name'
To Prevent you from losing history, non-fasst-forward updates were rejected
Merge the remote changes (e.g. 'git    pull') before pushing again.)
Run Code Online (Sandbox Code Playgroud)

我试了一下,git pull但它说一切都是最新的,我在快进的帮助文档中找不到任何解决我的情况的东西.

git branch head linode

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

Javascript函数将我的字符串参数视为整数

我有一个包含参数的javascript函数.

<a href="#" onclick="changeAvatar(0684839741);">Click here</a>
Run Code Online (Sandbox Code Playgroud)

我需要将该参数作为一个字符串,因为有时会有Letters或一个前导0,我将需要像本示例中那样保留.

我检查以确保传入的参数是一个字符串

x.constructor === String
Run Code Online (Sandbox Code Playgroud)

但是在我的changeAvatar函数中,参数不再是字符串.相反,它是一个数字,如果它包含一个字母,则删除前导零或中断.

如何获得保留其类型的参数?

javascript object-type

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