我正在关注Kevin Skoglund教程Ruby on Rails 3 Essential Training,它是为rails 3.0编写的,尽管我目前正在使用3.2.它使用带有before_filter的pages_controller中的以下方法,仅显示属于父主题的页面.
该教程明确使用.find_by_id,因为如果结果为nil,则"不会返回错误".但是,当我尝试查看@subject已设置为nil的页面时,我得到"被调用的id为nil,错误地为4 - 如果你真的想要id为nil,请使用object_id"错误.
def find_subject
if params[:subject_id]
@subject = Subject.find_by_id(params[:subject_id])
end
end
Run Code Online (Sandbox Code Playgroud)
导致错误的实际代码是:
def list
@pages = Page.order("pages.position ASC").where(:subject_id => @subject.id)
end
Run Code Online (Sandbox Code Playgroud)
这是自3.0以来发生了什么变化吗?如果是这样,在3.2中实现此功能的正确方法是什么?
我有2个模型(Workout,Equipment)中有一个属于很多关系.如果我使用Workout.find(:all, :joins => :equipment, :conditions => "equipment.id = 5")它,但如果我使用Workout.find(:all, :joins => :equipment, :conditions => "equipment.id = null")它不会返回没有关联的记录.有任何想法吗?
ruby-on-rails has-and-belongs-to-many ruby-on-rails-3 ruby-on-rails-3.1
Equipment.create(name: "Room to run")
Equipment.create(name: "Pull-up bar")
Workout.create(
description: "Do 100 pull-ups then run 5km",
:equipment => Equipment.where(:name => 'Pull-up bar'))
Run Code Online (Sandbox Code Playgroud)
设备和锻炼有HABTM关系.上面的种子代码有效,但我怎么能同时分配第二个设备协会?
ruby ruby-on-rails seed has-and-belongs-to-many ruby-on-rails-3
我是铁杆新手.只是想知道哪个是更好的方法,如果找不到subject_id,将返回nil:
@subject = Subject.find_by_id(params[:subject_id])
Run Code Online (Sandbox Code Playgroud)
要么
@subject = Subject.where(:id => params[:subject_id]).first
Run Code Online (Sandbox Code Playgroud)
谢谢.
我有一个 data.frame (df),其中包含另一个名为 url_variables 的 data.frame。
url_variables = df$url_variables
Run Code Online (Sandbox Code Playgroud)
url_variables 包含许多其他 data.frames,例如source、Campaign、page等。每个数据框都有 3 列key、value和type。我使用 bind_cols 将所有单独的数据帧组合成一个平面数据帧。
flat_url_variables = bind_cols(as.list(url_variables))
Run Code Online (Sandbox Code Playgroud)
问题是 flat_url_variables 的列名称是非描述性的key、value、type、key、value、type等。如何根据每个单独的 url 变量 data.frame 的名称来命名 flat_url_variables 的列(source_key , source_value ,来源类型、活动密钥等)?
这是输出dput(head(url_variables)):
structure(list(`_privatedomain` = structure(list(key = c("_privatedomain",
"_privatedomain", "_privatedomain", "_privatedomain", "_privatedomain",
"_privatedomain"), value = c("t", "t", …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码登录网站:
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'csv'
require 'restclient'
HEADERS_HASH = {"User-Agent" => "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/534.57.5 (KHTML, like Gecko) Version/5.1.7 Safari/534.57.4"}
page = Nokogiri::HTML(open("http://example.com/login", HEADERS_HASH))
token = page.css("form.login_box div input")[0]['value']
login_resp = RestClient.post("https://example.com/session", {"authenticity_token" => token, "login" => 'username', "password" => 'password', "remember_me" => 1, 'commit' => 'Sign In'})
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/abstract_response.rb:39:in `return!': 302 Found (RestClient::Found)
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:230:in `process_result'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:178:in `block in transmit'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/1.9.1/net/http.rb:745:in `start'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:172:in `transmit'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rest-client-1.6.7/lib/restclient/request.rb:64:in `execute'
from …Run Code Online (Sandbox Code Playgroud) <%= link_to t('.new', :default => t("helpers.links.new")), new_equipment_path, :class => 'btn btn-primary' %>
Run Code Online (Sandbox Code Playgroud)
我在视图中有上面的代码,但是在单击链接时出现以下错误: No route matches {:action=>"show", :controller=>"equipment"}
我的路线文件包含:
resources :equipment
resources :workouts
match ':controller(/:action(/:id))(.:format)'
Run Code Online (Sandbox Code Playgroud)
为什么要尝试访问show动作?
以下是我的路线中的条目:
equipment_index GET /equipment(.:format) equipment#index
POST /equipment(.:format) equipment#create
new_equipment GET /equipment/new(.:format) equipment#new
edit_equipment GET /equipment/:id/edit(.:format) equipment#edit
equipment GET /equipment/:id(.:format) equipment#show
PUT /equipment/:id(.:format) equipment#update
DELETE /equipment/:id(.:format) equipment#destroy
Run Code Online (Sandbox Code Playgroud) 我有一个简单的红宝石(非rails)应用程序使用resque,并没有启动没有config.ru在heroku上.当我添加config.ru文件时,我在rackup本地运行时收到以下错误:
/usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:133:in `to_app': missing run or map statement (RuntimeError)
from /Users/nickkarrasch/Dropbox/Coding/Ruby/smsnotifyv2/config.ru:in `<main>'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in `eval'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:49:in `new_from_string'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/builder.rb:40:in `parse_file'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:277:in `build_app_and_options_from_config'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:199:in `app'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:314:in `wrapped_app'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:250:in `start'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/lib/rack/server.rb:141:in `start'
from /usr/local/Cellar/ruby/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rack-1.5.2/bin/rackup:4:in `<top (required)>'
from /usr/local/Cellar/ruby/1.9.3-p194/bin/rackup:23:in `load'
from /usr/local/Cellar/ruby/1.9.3-p194/bin/rackup:23:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我需要在config.ru中放入什么?
words.delete_if do |x|
x == ("a"||"for"||"to"||"and")
end
Run Code Online (Sandbox Code Playgroud)
words是一个包含很多单词的数组.我的代码是删除"a"但不删除"for","to"或"and".
ruby ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2
我试图写我的第一个php / mysql页面,并遇到一个SQL语法错误,我找不到原因。
错误如下:
无法创建域建议表。错误您的SQL语法有错误。检查与您的MySQL服务器版本相对应的手册,以在第2行的'PRIMARY_KEY,域TEXT,作者TEXT,submitdate DATE NOT NULL)DE'附近使用正确的语法
我的代码如下。任何帮助,不胜感激。
$sql = 'SELECT domain FROM domainsuggestions';
$domains = mysqli_query($link, $sql); // get domain suggestions from table
if (!$domains) // check if was able to get results from table. if not create table
{
$output = 'Unable to find domain suggestions table. Creating now...';
echo htmlspecialchars($output, ENT_QUOTES, 'UTF-8');
$createtable = 'CREATE TABLE domainsuggestions(
id INT NOT NULL AUTO_INCREMENT PRIMARY_KEY,
domain TEXT,
author TEXT,
submitdate DATE NOT NULL
) DEFAULT CHARACTER SET utf8'; …Run Code Online (Sandbox Code Playgroud)