小编Sve*_* R.的帖子

Ruby语法:从'each ... do ..'块中突破

我正在开发Ruby on Rails应用程序.我的问题更多是关于Ruby语法.

我有一个带有类方法的模型类self.check:

class Cars < ActiveRecord::Base
  ...
  def self.check(name)
     self.all.each do |car|
          #if result is true, break out from the each block, and return the car how to...
          result = SOME_CONDITION_MEET?(car) #not related with database
     end

     puts "outside the each block."
  end
end
Run Code Online (Sandbox Code Playgroud)

我想停止/从跳出each一次result真实的(这是打破eachif块car.name是一样的name参数一次),并返回car其导致真正的结果.如何在Ruby代码中突破?

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

48
推荐指数
2
解决办法
8万
查看次数

销毁空白嵌套属性

如果它的属性在父模型的表单中被消隐,我想销毁嵌套模型 - 但是,ActiveRecord::Callbacks如果模型为空,则看起来不会调用它.

class Artist < ActiveRecord::Base
  using_access_control
  attr_accessible :bio, :name, :tour_dates_attributes
  has_many :tour_dates, :dependent => :destroy
  accepts_nested_attributes_for :tour_dates, :reject_if => lambda { |a| a[:when].blank? || a[:where].blank? }, :allow_destroy => true
  validates :bio, :name :presence => true

  def to_param
    name
  end
end
Run Code Online (Sandbox Code Playgroud)

class TourDate < ActiveRecord::Base
  validates :address, :when, :where, :artist_id, :presence => true
  attr_accessible :address, :artist_id, :when, :where
  belongs_to :artist
  before_save :destroy_if_blank

  private
  def destroy_if_blank
    logger.info "destroy_if_blank called"
  end
end
Run Code Online (Sandbox Code Playgroud)

我有一个艺术家的表格,用于fields_for显示艺术家相关旅行日期的字段,用于编辑和添加新的旅行日期,但如果我只是删除一个旅游日期(删除它),destroy_if_blank则永远不会被调用.据推测,Artist控制器的@artist.update_attributes(params[:artist]) …

activerecord ruby-on-rails

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

如何使用非标准日期格式在Javascript中创建新的Date()

我有这种格式的日期:dd.mm.yyyy

当我用它实例化一个JavaScript日期时,它给了我一个 NaN

在c#中我可以指定一个日期格式,说:这里你有我的字符串,它是这种格式,请做一个日期时间.

这在JavaScript中也可能吗?如果没有,有一个简单的方法吗?

我宁愿不使用子字符串表示日期,子字符串表示月份等,因为我的方法还必须能够使用德语,意大利语,英语等日期.

javascript

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

如何使用devise gem配置我的RubyMine?

当我在RubyMine中使用它时,我没有看到帮助程序的自动完成(如current_user,destroy_user_session_path等).这是非常糟糕的:(有人可以帮助我吗?:)

ruby-on-rails rubymine helpers devise

16
推荐指数
2
解决办法
1254
查看次数

"CSRF检测到"与Omniauth和Google合作

我得到了这个

OmniAuth :: Strategies :: OAuth2 ::/auth/google/callback中的CallbackError csrf_detected | CSRF检测到

我的代码:

require 'sinatra'
require "sinatra/json"
require "sinatra/config_file"
require 'omniauth-oauth2'
require 'omniauth-google-oauth2'

use Rack::Logger

config_file "config/app_config.yml"
use Rack::Session::Cookie, secret: '5fb7w345y3489f523y4h'

configure do
  enable :sessions
end

use OmniAuth::Builder do
  provider :google_oauth2, settings.google[:client_id], settings.google[:secret],
    {
      :scope => "userinfo.profile",
      :access_type => "offline",
      :prompt => "select_account consent",
      :name => "google"
    }
end

get '/list' do
  json get_list
end

get '/' do
  %Q|<a href='/auth/google'>Sign in with Google</a>|
end

get '/auth/:name/callback' do
  @auth = request.env['omniauth.auth']
  @auth.inspect
end …
Run Code Online (Sandbox Code Playgroud)

ruby sinatra oauth-2.0 omniauth

14
推荐指数
3
解决办法
2万
查看次数

array.count和array.size之间的区别

有什么区别array.countarray.size

我在使用时有时会在生产环境中遇到错误array.count,但是当我使用时,同样可以正常工作array.size.

arrays ruby-on-rails

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

rails form_tag url path

这似乎应该是如此简单,但它一直在给我带来问题.

我有一个从模型中提取的select_tag.我想要的是让一个人从下拉菜单中选择他们的位置,按提交并将其带到那个地方页面.

这就是我所拥有的

<% form_tag installation_path do %>
<%= select_tag :id, options_from_collection_for_select(Installation.find(:all), :id, :name) %>
<div id="button">
  <p>
    <%= submit_tag "Go", :name => nil %>
  </p>
</div>
Run Code Online (Sandbox Code Playgroud)

问题是它当然想要一个,:id但它不会:id从下面的下拉菜单中拉出来.

我做错了什么,以及"正确"的方式做任何其他建议.

谢谢

forms ruby-on-rails

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

Ruby on Rails - n:m多对多关系

我有两个对象,即配方和成分.
我用它们创建了它们

rails generate scaffold ingredient id:integer name:string
rails generate scaffold recipe id:integer name:string 
Run Code Online (Sandbox Code Playgroud)

我也希望用:m关系(多对多)创建它们.
我该怎么做?我应该创建一个不同的脚手架吗?谢谢.

ruby ruby-on-rails

5
推荐指数
3
解决办法
8546
查看次数

使用 HTTParty 解析 HTTP 标头“set-cookie”

我使用 HTTParty 来发出 HTTP 请求并使用 REST API。现在我想重新使用我通过 POST 调用的登录页面设置的 cookie。

class SomeImporter
  include HTTParty

  def self.login
    response = self.post('https://www.example.com/login', :query => {:user => 'myusername', :password => 'secret'})
    self.default_cookies.add_cookies(response.header['set-cookie'])
    self.get('https://www.example.com/protected')
  end
end
Run Code Online (Sandbox Code Playgroud)

使用此代码未正确设置 cookie。如何正确解析 HTTParty 给出的“set-cookie”标头并为下一个请求设置 cookie?

ruby-on-rails setcookie session-cookies httparty http-headers

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

如何进行多级关联?

我有这个设置:

Continent- > Country- > City- >Post

我有

class Continent < ActiveRecord::Base
   has_many :countries
end

class Country < ActiveRecord::Base
  belongs_to :continent
  has_many :cities
end

class City < ActiveRecord::Base
  belongs_to :country
  has_many :posts
end

class Post < ActiveRecord::Base
  belongs_to :city
end
Run Code Online (Sandbox Code Playgroud)

如何通过此关联让所有大陆都有帖子

喜欢:

@posts = Post.all

@posts.continents #=> [{:id=>1,:name=>"America"},{...}] 
Run Code Online (Sandbox Code Playgroud)

activerecord associations ruby-on-rails-3

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

TYPO3-upload_max_filesize安装错误

安装过程中出现以下错误:

PHP最大上传文件大小太小PHP upload_max_filesize = 11 MB TYPO3_CONF_VARS [BE] [maxFileSize] = 10 MB

当前,PHP确定上传文件大小的限制,而不是TYPO3。建议upload_max_filesize的值至少等于TYPO3_CONF_VARS [BE] [maxFileSize]的值。

我也将php.ini设置更改为11MB post_max_size=12。如何解决此错误?我应该修改TYPO3_CONF_VARS[BE][maxFileSize]并将其设置为较低的值吗?

谢谢!

php typo3

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

在 Odoo Qweb 报告中将字体设置为整个页面

如何设置 Odoo Qweb 报告中的字体?目前,当我在 ubuntu 12.04 中开发报告时,报告的 PDF 副本看起来不错。但是,如果我在 ubuntu 14.04 中尝试,同样的事情,字体看起来很小。怎么克服呢?

odoo

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