我正在尝试在我的一个控制器中发出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
我有一个使用布尔值的迁移,并在其视图中生成一个复选框.但是,无论我单击什么,保存到数据库的值都不会受到影响.
我的迁移看起来像这样:
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)
控制器只是脚手架生成的默认值. …
我与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未定义生成的.
你们有没有遇到过这个?不太确定原因是什么.
我正在运行的版本:
我正在构建一个应用程序,需要一个两步过程来为其中一个模型创建一个对象.
我考虑过......
创建自定义"新"操作的自定义路由
要么
对两个步骤使用相同的"新"操作,但基于参数渲染正确的视图
处理这个问题的最佳方法是什么?
当我尝试运行我的视图时,我得到了这个:
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)
我猜我需要在控制器中加入其他东西我只是不知道是什么...抱歉,如果这是一个非常明显的问题!
我正在尝试使用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可能是一个问题的信息,但我没有安装这个宝石.谢谢你的任何建议.
我有一个数组:
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作为答案.
我们有一个应用程序,目前在Rails版本2.3.12和Ruby版本1.8.7上.我们想要将我们的应用程序更新到Rails 4.0和Ruby 2.1.0.我们有大约200个型号和150个控制器.
我想知道进行升级过程有多大的努力.您还可以提供升级后可以遵循的步骤.我们应该首先升级Ruby然后再升级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)
这样做的正确方法是什么?
我正在使用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 ×5
action ×1
arrays ×1
boolean ×1
capybara ×1
checkbox ×1
controller ×1
count ×1
firebird ×1
login ×1
net-http ×1
omniauth ×1
rails-i18n ×1
ruby-openid ×1
validation ×1
view ×1