我正在使用:
Paperclip 2.3.16
Rails 3.0.9
Ruby 1.9.2
AWS - S3 0.6.2
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用回形针将上传到欧盟(爱尔兰)的桶.我的模型中有以下内容:
has_attached_file :image, :styles => { :grid => '90x128#', :list => '140x200#', :original => '400x548'},
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:url => 'flyers/:id/:style/:basename.:extension',
:path => 'flyers/:id/:style/:basename.:extension',
:bucket => 'fsight'
Run Code Online (Sandbox Code Playgroud)
在我的environment.rb中,我使用以下方法将write设置为使用AWS/s3默认主机到相关的EU主机:
require "aws/s3"
AWS::S3::DEFAULT_HOST.replace "s3-eu-west-1.amazonaws.com"
Run Code Online (Sandbox Code Playgroud)
这很好用,它允许我上传图像,我可以使用AWS Management控制台验证图像上传/删除.
但是,我在尝试在我的网站上显示图像时遇到问题.图片无法加载,我已确定原因,因为生成的URL使用旧的默认主机.例如:
应该是什么: https ://s3-eu-west-1.amazonaws.com/fsight/flyers/50/full/4759543368588654950.jpg
实际上是什么: http ://s3.amazonaws.com/fsight/flyers/50/full/4759543368588654950.jpg?1314801178
如您所见,它使用旧的默认主机.
我试过放置:
Paperclip.interpolates(:s3_eu_url) do |att, style|
"#{att.s3_protocol}://s3-eu-west-1.amazonaws.com/#{att.bucket_name}/#{att.path(style)}"
end
Run Code Online (Sandbox Code Playgroud)
但后来开始收到以下错误:
wrong number of arguments (0 for 1)
Extracted source (around line #9):
<img src= …Run Code Online (Sandbox Code Playgroud) 这个问题实际上是两个问题.
Active_admin使用formtastic渲染表单,所以我将在formtastic的上下文中询问.如何创建一个选择页面上所有复选框的按钮?我可以使用JavaScript来做到这一点,但我不确定如何在formtastic中做到这一点.根据选择值设置集合.我有一个下拉菜单,让人们从"课程"列表中选择.学生已注册课程,因此我希望能够显示在课程中注册的学生的复选框列表.即:如果用户选择不同的课程,则学生列表将改变.
has_and_belongs_to_many:学生
has_and_belongs_to_many:课程
javascript checkbox formtastic ruby-on-rails-3.1 activeadmin
我目前运行Rails 3.1并使用最新版本的Wicked_pdf进行PDF生成.我已经正确设置了所有内容,并且PDF生成得很好.
但是,我希望用户能够单击按钮以下载pdf.目前,单击时,浏览器将呈现pdf并将其显示在页面上.
<%= link_to "Download PDF", { :action => "show", :format => :pdf }, class: 'button nice red large radius', target: '_blank'%>
Run Code Online (Sandbox Code Playgroud)
我的控制器.
def show
@curric = Curric.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @curric }
format.pdf do
render :pdf => @curric.name + " CV",
:margin => {:top => 20,
:bottom => 20 }
end
end
end
Run Code Online (Sandbox Code Playgroud)
我被指向send_file,但绝对不知道如何在这种情况下使用它.
任何帮助表示赞赏.
我正在使用Rails辅助方法来构建表单,并使用验证.
只要其中一个验证失败,rails就会在field_with_errors标记中包含相应的输入和标签.哪个好.
但是,由于某些原因,rails将输入和标签包装在不同的div中,使得样式非常难:
例如:
<div class="field">
<div class="field_with_errors">...label...</div>
<div class="field_with_errors">..input ...</div>
</div>
Run Code Online (Sandbox Code Playgroud)
而我需要的是:
<div class="field">
<div class="field_with_errors">...label & input...</div>
</div>
Run Code Online (Sandbox Code Playgroud)
有谁知道我会怎么做到这一点?
我在我的Rails 3.0.9应用程序中使用Devise进行用户身份验证.由于我希望能够管理用户,因此我创建了以下用户控制器:
class UsersController < ApplicationController
def index
@users = User.all
end
def new
@user = User.new
end
def create
@user = User.new(params[:user])
if @user.save
flash[:notice] = "Successfully created User."
redirect_to users_path
else
render :action => 'new'
end
end
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
params[:user].delete(:password) if params[:user][:password].blank?
params[:user].delete(:password_confirmation) if params[:user][:password].blank? and params[:user][:password_confirmation].blank?
if @user.update_attributes(params[:user])
if current_user.update_with_password(params[:user])
sign_in(current_user, :bypass => true)
end
flash[:notice] = "Successfully updated User."
redirect_to users_path
else
render :action => 'edit'
end …Run Code Online (Sandbox Code Playgroud) # student.rb
has_and_belongs_to_many :courses
# course.rb
has_and_belongs_to_many :students
Run Code Online (Sandbox Code Playgroud)
我正在尝试在学生模型中创建一个范围,以检查他们是否注册了课程.
我提出的最好的是:
scope :unenrolled, where(Student.courses.count => 0)
Run Code Online (Sandbox Code Playgroud)
但后来我得到了错误信息
未定义的方法`课程'
有人提出任何建议吗?
activeadmin ×1
amazon-s3 ×1
associations ×1
checkbox ×1
css ×1
devise ×1
formtastic ×1
javascript ×1
nested ×1
paperclip ×1
passwords ×1
pdf ×1
scope ×1
sendfile ×1
upload ×1
validation ×1
wicked-pdf ×1