小编Amm*_*mar的帖子

Rails 3 - Amazon S3 Paperclip EU问题

我正在使用:

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)

upload amazon-s3 paperclip ruby-on-rails-3

11
推荐指数
3
解决办法
7939
查看次数

Rails 3.1 - Active_admin和Checkboxes

这个问题实际上是两个问题.

  1. 选择所有按钮 - Active_admin使用formtastic渲染表单,所以我将在formtastic的上下文中询问.如何创建一个选择页面上所有复选框的按钮?我可以使用JavaScript来做到这一点,但我不确定如何在formtastic中做到这一点.
  2. 根据选择值设置集合.我有一个下拉菜单,让人们从"课程"列表中选择.学生已注册课程,因此我希望能够显示在课程中注册的学生的复选框列表.即:如果用户选择不同的课程,则学生列表将改变.

    course.rb

    has_and_belongs_to_many:学生

    student.rb

    has_and_belongs_to_many:课程

javascript checkbox formtastic ruby-on-rails-3.1 activeadmin

4
推荐指数
1
解决办法
4462
查看次数

Wicked_PDF仅下载 - Rails 3.1

我目前运行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,但绝对不知道如何在这种情况下使用它.

任何帮助表示赞赏.

pdf ruby-on-rails sendfile ruby-on-rails-3.1 wicked-pdf

4
推荐指数
1
解决办法
6998
查看次数

Rails 3.1 - 有错误的字段

我正在使用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)

有谁知道我会怎么做到这一点?

css validation ruby-on-rails-3.1

2
推荐指数
1
解决办法
956
查看次数

Rails 3设计更新密码而不注销

我在我的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)

authentication passwords devise ruby-on-rails-3

1
推荐指数
1
解决办法
4116
查看次数

Rails 3.1 - 使用范围查找未注册的学生

# 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)

但后来我得到了错误信息

未定义的方法`课程'

有人提出任何建议吗?

scope nested associations ruby-on-rails-3.1

1
推荐指数
1
解决办法
593
查看次数