我无法通过Windows中的命令行访问PostgreSQL.虽然我能够创建和更新数据库,通过PGAdminIII访问它们,然后推送到Heroku,我无法使用psql命令通过命令行直接访问它们.
当我尝试使用该命令创建数据库时
$ createdb mydb
Run Code Online (Sandbox Code Playgroud)
如PG文档中所述,我收到了消息
createdb: command not found
Run Code Online (Sandbox Code Playgroud)
文档表明,在这种情况下,"PostgreSQL没有正确安装.请尝试使用绝对路径调用命令." 果然,我可以通过输入文件的直接路径来创建数据库:
$ c:/postgreSQL/9.1/bin/createdb mydb
Run Code Online (Sandbox Code Playgroud)
这是否意味着可以重新配置路径以正确连接?或者我需要重新安装吗?我重新安装了几次,并且无法设置正确的路径.我目前已将/ bin和/ lib路径添加到我的系统和用户(:Umezo)路径中,但仍无法从命令行访问.
User variables for umezo
variable name: Path
variable value: C:\PostgreSQL\9.1\bin; C:\PostgreSQL\9.1\lib
System variables
variable name: Path
variable value: C:\PostgreSQL\9.1\bin; C:\PostgreSQL\9.1\lib
Run Code Online (Sandbox Code Playgroud)
任何有关如何修复我的分期付款的信息或反馈将不胜感激.
我的信息如下:
我在这里和这里主要关注这些来源.我安装了一个32位版本的9.1,因为有些消息来源提出了64位的问题.
PG download version: Installer Version 9.1 Win x86-32
Operating System: Windows 7 (64 bit)
Run Code Online (Sandbox Code Playgroud)
的pg_hba.conf
#TYPE DATABASE USER CIER-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local …Run Code Online (Sandbox Code Playgroud) 我有一个博客应用程序,其帖子可以通过vote帖子控制器中的操作接收投票.因为我允许在索引和显示视图中redirect_to :back进行投票,所以我在投票后进行投票,如下所示.
def vote
# voting logic goes here
redirect_to :back
end
Run Code Online (Sandbox Code Playgroud)
这会将我重定向到正确的页面,但我想重定向到页面中的特定帖子.为此,我在帖子部分div中添加了一个识别锚点.
<div id="post_<%= post.id %>">
<%= post.content %>
</div>
Run Code Online (Sandbox Code Playgroud)
我怎么能在我的网站上引用这个redirect_to :back?我尝试了以下,这是行不通的.
# this doesn't work!
redirect_to :back, anchor: "post_#{@post.id}"
Run Code Online (Sandbox Code Playgroud)
或者,如果我对show和index视图使用if子句,我该怎么做?我尝试了以下,返回undefined method 'current_page' for VocabsController.
#this doesn't work!
if current_page?(posts_path)
redirect_to posts_path(anchor: "post_#{@post.id}"
else
redirect_to @post
end
Run Code Online (Sandbox Code Playgroud) 我有一个带有评论的博客应用程序.目前,评论控制器具有标准的创建操作
def create
@comment = current_user.build(params[:comment])
respond_to do |format|
if @comment.save
format.html { redirect_to @comment.post }
end
end
Run Code Online (Sandbox Code Playgroud)
创建后,用户将被重定向到发表评论的博客文章.如何在页面中向下重定向到新评论的位置?
文章/ show.html.erb
<div id="post_show">
<%= @post.content %>
<%= render @post.comments %>
</div>
Run Code Online (Sandbox Code Playgroud)
评论/ _comment.html.erb
<div id="comment_partial">
<%= comment.content %>
</div>
Run Code Online (Sandbox Code Playgroud)
有什么东西我可以添加到我的HTML,然后在我的控制器中引用?我需要以某种方式"保存"位置吗?感谢您帮助新手!
我在go的database/sql包提供的QueryRow方法中调用了一个简单的SQL查询.
import (
"github.com/codegangsta/martini"
"github.com/martini-contrib/render"
"net/http"
"database/sql"
"fmt"
_ "github.com/lib/pq")
)
type User struct {
Name string
}
func Show(db *sql.DB, params martini.Params) {
id := params["id"]
row := db.QueryRow(
"SELECT name FROM users WHERE id=?", id)
u := User{}
err := row.Scan(&u.Name)
fmt.Println(err)
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到错误pq: operator does not exist: integer =?看起来代码不明白它?只是一个占位符.我怎样才能解决这个问题?
我为环境特定变量(如用户名和密码)设置了一个环境YAML文件.要在我的应用程序中使用这些变量,我需要使用APP_CONFIG['username']而不是APP_CONFIG[:username].为什么是这样?我该如何启用后者呢?这不是一个重大问题,但我不知道差异的原因.
配置/初始化/ load_app_config.rb
APP_CONFIG = YAML.load_file("#{Rails.root}/config/app_config.yml")[Rails.env]
Run Code Online (Sandbox Code Playgroud)
配置/ app_config.yml
development:
username: development_name
password: secret
production:
username: production_name
password: super_secret
Run Code Online (Sandbox Code Playgroud) 我有一个控制器create动作,该动作可以创建新的博客文章,并在帖子成功保存后运行其他方法。
我有一个单独的工厂女孩文件,其中包含要发布的帖子的参数。FactoryGirl.create调用ruby create方法,而不是控制器中的create动作。
如何从RSpec中的控制器调用create操作?以及如何在我的工厂女孩factories.rb文件中将其发送给它?
posts_controller.rb
def create
@post = Post.new(params[:post])
if @post.save
@post.my_special_method
redirect_to root_path
else
redirect_to new_path
end
end
Run Code Online (Sandbox Code Playgroud)
spec / requests / post_pages_spec.rb
it "should successfully run my special method" do
@post = FactoryGirl.create(:post)
@post.user.different_models.count.should == 1
end
Run Code Online (Sandbox Code Playgroud)
post.rb
def my_special_method
user = self.user
special_post = Post.where("group_id IN (?) AND user_id IN (?)", 1, user.id)
if special_post.count == 10
DifferentModel.create(user_id: user.id, foo_id: foobar.id)
end
end
Run Code Online (Sandbox Code Playgroud)
结束
我创建了调查,并有一堆命名的列的:movie_1通过:movie_5,我想通过做一个表,我的形式循环.这样做的最佳方法是什么?
到目前为止,我已经开始如下,但无法弄清楚如何格式化循环.
survey.rb模型
attr_accessible :movie_1, :movie_2, :movie_3, :movie_4, :movie_5
MOVIES = ["Rocky", "Wayne's World", "The Godfather", "Alien", "Toy Story"]
Run Code Online (Sandbox Code Playgroud)
new.html.erb调查表
<%= form_for @survey do |f|
<table>
<tr>
<th>Movie Name</th>
<th>Rating</th>
</r>
<% 5.times.each do |n| %>
<tr>
<th><%= f.label Survey::MOVIES[n] %></th> # how can I loop through the MOVIES array?
<th><%= f.text_field :movie_n %></th> # how can I loop through the different columns?
</tr>
<% end %>
</table>
<% end %>
Run Code Online (Sandbox Code Playgroud) 我有一个购物推荐网站,允许用户发布他们推荐的商品的网址.
表单当前仅包含主产品页面的URL的单个输入.
如果用户要发布如下链接:
我想要显示此网址中包含的og:图像的图像标记.
使用facebook开放图协议页面,我看到上面的示例url确实有一个og:image
如何将网址提取到og:image?
关于部署到Heroku的问题,我看到很多帖子,但是我无法找到适合我案例的解决方案.任何输入都将非常感激.
我有一个在本地运行良好的博客应用程序.但是,当我部署到Heroku时,我回来了"我很抱歉,但出了点问题".
我拥有的宝石是:
group :development do
gem 'sqlite3', '1.3.5'
end
group :production do
gem 'pg', '0.12.2'
end
Run Code Online (Sandbox Code Playgroud)
我采取的步骤是:
git add.
git commit -am "latest update"
git push
git push heroku
rake db:migrate
heroku run rake db:migrate
Run Code Online (Sandbox Code Playgroud)
我的SQLite3数据库正在迁移,因为我可以通过rails console找到我最新的博客条目(Blog.find(21)).但是,当Heroku控制台返回时,数据似乎没有迁移到Heroku数据库
"ActiveRecord::RecordNotFound: Couldn't find Blog with id=21."
Run Code Online (Sandbox Code Playgroud)
此外,"heroku日志"发现:
Completed 500 Internal Server Error in 50ms
NoMethod Error (undefined method 'blogs' for nil:NilClass):
app/controllers/static_pages_controller.rb:8:in 'home'
Run Code Online (Sandbox Code Playgroud)
这是否意味着我的static_pages_controller中可能存在问题,或者它只是返回错误,因为数据库没有正确迁移?
下面是我的static_pages控制器,它在我的本地服务器上运行正常.
class StaticPagesController < ApplicationController
def home
if signed_in?
@blog = current_editor.blogs.build
end
@editor = Editor.first
@blogs = …Run Code Online (Sandbox Code Playgroud) 我在我的博客应用程序中使用CKEditor,并在我的:content属性中保存格式化数据.
例如,特定的@ post.content可能会像这样开始.
<p>\r\n\t<span class=\"s1\" style=\"color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 1.1em; line-height: 1.7em;\">This is my text starting here. This is an really awesome entry, you see...
条目的第一部分是所有格式化数据,实际书面内容以"这是我的文字从这里开始......"开头.
我想要做的是显示书面内容的前五十个字符.
我试过这样的事,
<%= post.content.first(50).try(:html_safe) %>
Run Code Online (Sandbox Code Playgroud)
但这不会返回任何内容,除非格式化数据少于50个字符.
如何显示书面内容的前五十个字符?
如果不清楚,或者是否需要任何其他信息,请告诉我.非常感谢您的帮助!