小编Sim*_*tti的帖子

使用GET/POST参数将Rails重定向到"www.somewebsite.com"?

我正在尝试在我的一个控制器中发出redirect_to到一个完全限定的URL +我想传递一些参数

在网站AI的控制器中:

redirect_to: "www.siteB.com/my_controller/my_action?my_parameter=123"
Run Code Online (Sandbox Code Playgroud)

在rails中有更好的方法吗?

ruby ruby-on-rails http-status-code-301 http-status-code-302

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

Ruby on Rails - Checkbox没有保存到数据库?

我有一个使用布尔值的迁移,并在其视图中生成一个复选框.但是,无论我单击什么,保存到数据库的值都不会受到影响.

我的迁移看起来像这样:

def self.up
    create_table :blogposts do |t|
      t.string :title
      t.text :body
      t.boolean :allow_comments, :default => false  
      t.references :author
      t.references :lasteditor
      t.timestamps
    end
  end
Run Code Online (Sandbox Code Playgroud)

我的观点如下:

<% semantic_form_for([:controlpanel, @blogpost]) do |form| %>
<%= form.error_messages %>
<% form.inputs do %>
<%= form.input :title %>
<%= form.input :body %>
<%= form.input :allow_comments %>
<% end %>
<%= form.buttons %>
Run Code Online (Sandbox Code Playgroud)

其中产生以下HTML:

<li class="boolean required" id="blogpost_allow_comments_input">
<label for="blogpost_allow_comments">
<input id="blogpost_allow_comments" name="blogpost[allow_comments]" type="checkbox" value="1" />
<input name="blogpost[allow_comments]" type="hidden" value="0" />Allow comments
<abbr title="required">*</abbr>
</label>
</li> 
Run Code Online (Sandbox Code Playgroud)

控制器只是脚手架生成的默认值. …

checkbox boolean ruby-on-rails

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

ruby-openid:执行发现时未设置@socket

我与omniauth/openid有点混乱.

在尝试进行身份验证时,我在日志中发现了这一点:

OpenID::FetchingError: Error fetching https://www.google.com/accounts/o8/.well-known/host-meta?hd=profiles.google.com%2Fmy_username: undefined method `io' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

重要的是undefined method io' for nil:NilClass来自openid/fetchers.rb,在下面的代码片段中:

module Net
class HTTP
def post_connection_check(hostname)
  check_common_name = true
  cert = @socket.io.peer_cert
  cert.extensions.each { |ext|
    next if ext.oid != "subjectAltName"
    ext.value.split(/,\s+/).each{ |general_name|
      if /\ADNS:(.*)/ =~ general_name
        check_common_name = false
...
Run Code Online (Sandbox Code Playgroud)

该错误是由@socket.io.peer_cert@socket未定义生成的.

你们有没有遇到过这个?不太确定原因是什么.

我正在运行的版本:

  • ruby 1.9.3dev(2010-08-17 trunk 29020)[x86_64-darwin10.4.0]
  • ruby-openid(2.1.8)
  • ruby-openid-apps-discovery(1.2.0)
  • omn​​iauth 0.2.0

ruby ruby-openid omniauth net-http

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

在Rails 3中处理多步骤"新"操作的RESTful方法

我正在构建一个应用程序,需要一个两步过程来为其中一个模型创建一个对象.

我考虑过......

创建自定义"新"操作的自定义路由

要么

对两个步骤使用相同的"新"操作,但基于参数渲染正确的视图

处理这个问题的最佳方法是什么?

ruby-on-rails

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

Rails缺少模板

当我尝试运行我的视图时,我得到了这个:

Missing template application/login with {:formats=>[:html], :locale=>[:en], :handlers=>[:coffee, :erb, :builder]}. Searched in: * "/home/carladessi/Goods In Final/app/views" 
Run Code Online (Sandbox Code Playgroud)

在我的控制器中我有:

def login

  # respond_to do |format|
  # format.html

end
Run Code Online (Sandbox Code Playgroud)

在我的路线我有:

match "/login/", :controller => 'application',  :action => 'login'
Run Code Online (Sandbox Code Playgroud)

我猜我需要在控制器中加入其他东西我只是不知道是什么...抱歉,如果这是一个非常明显的问题!

action controller login ruby-on-rails view

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

rails 3.2 capybara Capybara :: ElementNotFound:无法找到xpath"/ html"

我正在尝试使用rspec 2.10.0 + capybara 1.1.2测试我的rails应用程序.这是我的测试文件

require 'spec_helper'

    describe AdminPanelController do
      describe "index" do
        it "should have return code 200" do
          visit '/admin'
          page.should have_content "hello"
          #response.status.should be(200)
        end
      end
    end
Run Code Online (Sandbox Code Playgroud)

这是测试结果

 Failure/Error: page.should have_content "hello"
 Capybara::ElementNotFound:
   Unable to find xpath "/html"
Run Code Online (Sandbox Code Playgroud)

我谷歌关于这个问题,但只找到webrat可能是一个问题的信息,但我没有安装这个宝石.谢谢你的任何建议.

ruby-on-rails capybara

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

如果对象包含值,则为Ruby Count Array对象

我有一个数组:

array = ['Footballs','Baseball','football','Soccer']
Run Code Online (Sandbox Code Playgroud)

我需要计算看到足球或棒球的次数,无论情况和复数.

这是我试图做的,但没有运气:

array.count { |x| x.downcase.include? 'football' || x.downcase.include? 'baseball' }
Run Code Online (Sandbox Code Playgroud)

编写此代码的正确或更好的方法是什么?我正在寻找3作为答案.

ruby arrays count

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

从Rails 2.3升级到Rails 4.0

我们有一个应用程序,目前在Rails版本2.3.12和Ruby版本1.8.7上.我们想要将我们的应用程序更新到Rails 4.0和Ruby 2.1.0.我们有大约200个型号和150个控制器.

我想知道进行升级过程有多大的努力.您还可以提供升级后可以遵循的步骤.我们应该首先升级Ruby然后再升级Rails,反之亦然?

ruby ruby-on-rails ruby-on-rails-4

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

Rails 关于另一个模型的属性的自定义验证错误消息

我在模型中使用以下代码将链接插入到验证错误消息中:

class Bar < ActiveRecord::Base
  has_many :foos
  validate :mode_matcher

  def mode_matcher
    self.foos.each do |f|
      errors[:base] << mode_mismatch(foo) unless foo.mode == "http"
    end
  end

  def mode_mismatch(f)
    foo_path = Rails.application.routes.url_helpers.foo_path(f)
    "Foo <a href='#{foo_path}'>#{f.name}</a> has the wrong mode.".html_safe
  end
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我知道推荐的方法是通过区域设置文件。我遇到了麻烦,因为我正在验证另一个模型的属性,所以以下内容不起作用:

en:
  activerecord:
    errors:
      models:
        bar:
          attributes:
            foo:
              mode_mismatch: "Foo %{link} has the wrong mode."
Run Code Online (Sandbox Code Playgroud)

这样做的正确方法是什么?

validation ruby-on-rails rails-i18n rails-activerecord

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

如何防止Ruby on Rails Active记录从数据库获取默认模型值?

我正在使用Firebird及其SQL引擎开发RoR应用程序,但我不明白为什么ActiveRecord(AR)不断查询数据库的默认值!

这是表DDL:

CREATE TABLE GLOBAL_SETTINGS
(
  SKEY varchar(64) NOT NULL,
  SVALUE varchar(256) NOT NULL,
  OBS blob sub_type 1,
  IS_SYSTEM "BOOLEAN" DEFAULT 1 NOT NULL,
  CREATED_AT timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,
  UPDATED_AT timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL,
  CONSTRAINT PK_GLOBAL_SETTINGS_SKEY PRIMARY KEY (SKEY)
);
Run Code Online (Sandbox Code Playgroud)

这是创建此表的迁移:(create_global_settings.rb

class CreateGlobalSettings < ActiveRecord::Migration
  def up
    create_table :global_settings, :id => false do |t|
      t.string :skey, :null => false, :limit => 64
      t.string :svalue, :null  => false, :limit => 256
      t.text :obs
      t.boolean :is_system, :null  => …
Run Code Online (Sandbox Code Playgroud)

ruby firebird ruby-on-rails rails-activerecord

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