我运行了这个迁移:
rails generate paperclip user avatar
Run Code Online (Sandbox Code Playgroud)
它创建了这个迁移文件:
class AddAttachmentAvatarToUsers < ActiveRecord::Migration
def self.up
change_table :users do |t|
t.attachment :avatar
end
end
def self.down
drop_attached_file :users, :avatar
end
end
Run Code Online (Sandbox Code Playgroud)
我将其添加到我的编辑用户注册视图中:
<div class="form-group">
<%= f.label :avatar %> <br>
<%= f.file_field :avatar, :autofocus => true, class: 'form-control' %>
</div>
Run Code Online (Sandbox Code Playgroud)
当我尝试在编辑用户注册中上传头像时,我收到此错误:
Devise中的ActiveRecord :: UnknownAttributeError :: RegistrationsController #update unknown属性:avatar
EDITS
我补充道
def user_params
params.require(:user).permit(:avatar)
end
Run Code Online (Sandbox Code Playgroud)
到我的用户模型,现在我没有得到错误,但现在配置文件图片只是作为链接打印出来.我想我能找到答案.
当我尝试使用默认管理员用户登录时,我收到"无效的电子邮件或密码".有没有办法用代码创建用户并尝试以这种方式登录?
我可以登录我的实时网站,但不能在本地登录.我的开发代码完全匹配生产中的内容.
当我跑步
rspec spec/
Run Code Online (Sandbox Code Playgroud)
在我的命令行中,我收到以下错误:
您已经激活rspec-support 3.0.0.beta1,但是Gemfile需要rspec-support 3.0.0.beta1。使用bundle exec可以解决这个问题。(Gem::LoadError)
我试着使用错误提示的bundle exec,但无济于事。告诉我它需要一个已经激活的版本,很奇怪。
我有一类'面板标题中心',但面板中的图像不是居中的.我怎么能做到这一点?
<%= link_to 'Back', things_path %>
<div class='row'>
<div class='col-md-offset-2 col-md-8'>
<div class='panel panel-default'>
<div class='panel-heading center'>
<%= image_tag @thing.image.url(:medium) %>
</div>
<div class='panel-body'>
<p>
<strong><%= @thing.title %></strong>
</p>
<p>
<%= @thing.description %>
</p>
<p>
<%= @thing.user.email %>
</p>
<% if @thing.user == current_user %>
<%= link_to 'Edit', edit_thing_path(@thing) %>
<% end %>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud) 通过以下功能,我转到一个站点,抓取一些信息,返回一些JSON,并将其放入@price实例变量中.
返回给我的JSON是一个数字,但是如果数字大于1000,那么该数字将包含一个逗号,所以我将其格式化.
def iteminfo(id)
url = "http://services.runescape.com/m=itemdb_rs/api/catalogue/detail.json?item=#{id}"
page = Nokogiri::HTML(open(url))
info = JSON.parse(page.text)
namefinder = info['item']['name']
pricefinder = info['item']['current']['price']
name = namefinder
@price = pricefinder.gsub(',', '').to_i
end
Run Code Online (Sandbox Code Playgroud)
我已经尝试过了:
if pricefinder.to_i > 1000
@price = pricefinder.gsub(',', '').to_i
else
@price = pricefinder.to_i
end
Run Code Online (Sandbox Code Playgroud)
摆脱了错误,但弄乱了所做的数学运算@price如何解决这个问题?
我的目标是仅向创建列表的用户显示"编辑"和"删除"按钮.但是,由于某种原因,current_user返回nil.知道为什么会这样吗?
这是我的用户模型:
class User < ActiveRecord::Base
has_many :listings
has_many :thoughts
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
Run Code Online (Sandbox Code Playgroud)
这是我的上市模型:
class Listing < ActiveRecord::Base
belongs_to :user
has_many :thoughts
end
<% @listings.each do |listing| %>
<tr>
<td><%= listing.title %></td>
<td><%= listing.school %></td>
<td><%= listing.price %></td>
<td><%= listing.description %></td>
<% if current_user == listing.user %>
<td><%= link_to 'Show', listing %></td>
<td><%= link_to 'Edit', edit_listing_path(listing) %></td>
<td><%= link_to 'Delete', listing, …Run Code Online (Sandbox Code Playgroud)