小编Phi*_*899的帖子

Rails资产管道:如何创建自定义清单文件

我试图从application.js单独创建一个自定义清单javascript文件.我从application.js获取代码并将其粘贴到我称为"other_manifest.js"的新文件中,并放在assets/javascrips目录中.这是代码:

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails sprockets asset-pipeline ruby-on-rails-4 ruby-on-rails-4.1

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

用设计确认后自动登录

我正在使用设计确认.我有一些自定义的东西,我需要覆盖设计的确认!方法,所以在我的用户模型中,我有以下方法覆盖它:

def confirm!
  super
  gb = Gibbon::API.new(ENV['MAILCHIMP_API_KEY'])
  gb.lists.subscribe({:id => ENV['MAILCHIMP_ID'], :email => {:email => self.email }})
end
Run Code Online (Sandbox Code Playgroud)

这非常有效.现在我想要它,以便用户在确认后自动登录,但无法弄清楚如何.我知道这被认为是一个安全漏洞,但我已经承受了风险,因此我的网站用户体验值得.我不想对routes文件做任何事情,因为这个方法已经有效,所以我应该可以从这里开始.我已经尝试将以下内容放入我的配置文件中:

config.allow_insecure_sign_in_after_confirmation = true
Run Code Online (Sandbox Code Playgroud)

但它没有签署用户.

我看过堆栈溢出页面在使用devise gem确认链接点击后避免登录?它没有用,所以请不要将其标记为副本.

感谢大家.

ruby ruby-on-rails devise devise-confirmable ruby-on-rails-4

10
推荐指数
2
解决办法
5524
查看次数

为什么bcrypt ruby​​ gem不能正确安装?

我试图加入bcrypt-ruby,v.3.0.1.我在我的gem文件中输入gem,如下所示:

gem 'bcrypt-ruby', '3.0.1'
Run Code Online (Sandbox Code Playgroud)

然后我去终端并运行:

bundle install
Run Code Online (Sandbox Code Playgroud)

我收到以下回复:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb 
creating Makefile

make
compiling bcrypt_ext.c
make: gcc-4.2: No such file or directory
make: *** [bcrypt_ext.o] Error 1


Gem files will remain installed in /Users/philip7899/.bundler/tmp/2186/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /Users/philip7899/.bundler/tmp/2186/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out
An error occurred while installing bcrypt-ruby (3.0.1), and Bundler cannot continue.
Make sure that `gem install bcrypt-ruby -v '3.0.1'` succeeds before bundling.
Run Code Online (Sandbox Code Playgroud)

我对Ruby和Rails都是新手,并且不知道如何解决这个问题.我已经看到其他stackoverflow页面有类似的问题,但没有一个能够帮助我.我最近升级到Mountain Lion,并被告知可能是一个问题.有人告诉我使用RVM卸载然后重新安装Ruby.我试过了,但没用.

请帮忙.谢谢.

gem ruby-on-rails bcrypt bundler bcrypt-ruby

9
推荐指数
2
解决办法
2万
查看次数

rails app的heroku错误:构建流出错,轮询结果

出于某种原因,当我将rails应用程序推送到heroku时,我收到以下错误:

Error with build stream, polling for results..................
Run Code Online (Sandbox Code Playgroud)

之后它实际上从未返回错误.点数不断增加.自上次提交以来,我改变的唯一代码行是视图文件中的html.我补充说:

<p>For more info, please contact us at info@mysite.com</p>
Run Code Online (Sandbox Code Playgroud)

我之前使用过heroku,从未收到过这个错误.我如何解决它?

ruby-on-rails heroku ruby-on-rails-4

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

rails - 在.save上发生after_update以获取新对象

我有两个模型:UserNotification和Schedule.创建计划时,会创建一种类型的用户通知(第一行代码).更新计划时,将创建另一种类型的用户通知(第二行代码).出于某种原因,after_update在保存之后发生(我只希望它在更新后发生).这是代码中的代码:

class Schedule < ActiveRecord::Base
   after_save 'UserNotification.schedule_created(@user)'
   after_update 'UserNotification.schedule_updated(@user)'
end
Run Code Online (Sandbox Code Playgroud)

我错过了什么.我怎么才能让after_save只在我说@ schedule.save之后才发生,而after_update只发生在我执行@ schedule.update_attributes(...)之后?如果有帮助,这是控制器代码:

if @schedule.save   
    flash[:notice] = "Successfully created schedule."
    redirect_to profile_path(current_user.profile_name)  #change to project path later
end
Run Code Online (Sandbox Code Playgroud)

oop ruby-on-rails callback ruby-on-rails-4 rails-activerecord

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

无法使用 React-Native 和 NativeBase 获取背景图像

我正在尝试将 NativeBase 与 ReactNative 一起使用,并将图片作为背景。我一直在谷歌搜索一段时间,这是我想出的代码:

export default class WelcomeScreen extends Component {
    render(){
        return (
            <Container>
                <Header>
                    <Button transparent>
                        <Icon name='ios-arrow-back' />
                    </Button>
                </Header>
                <Content>
                    <Image source={require('../images/telula_upclose.jpeg')} style={styles.backgroundImage} />
                    <Text>Do you ever feel like you dont have a partner</Text>
                </Content>
            </Container>
        );
    }
}

let styles = StyleSheet.create({
  backgroundImage: {
    flex: 1,
    backgroundColor:'transparent',
    justifyContent: 'center',
    alignItems: 'center',
  }
});
Run Code Online (Sandbox Code Playgroud)

问题是这会极大地拉伸图像,以至于在模拟器中无法识别。这是模拟器中的内容与实际图像相比的图片:

模拟器图片

这是实际图像:

实物图片

我该如何解决?

react-native native-base

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

activeadmin 表单中所需的输入不起作用

我正在使用 active_admin。我正在尝试在 activeadmin 中创建一个表单字段:

  input :team, as: :select, required: true, collection: Team.all.pluck(:name, :id), include_blank: "Please enter a team", allow_blank: false
Run Code Online (Sandbox Code Playgroud)

只有在这个特定的 activeadmin 页面上,我才需要此验证。它不应该存在于站点的其他任何地方,所以我不想在模型中这样做。

出于某种原因,上面的代码不起作用。虽然表单字段确实显示了*,但它仍然提交。如何仅在此页面上需要此输入?

ruby-on-rails formtastic activeadmin ruby-on-rails-5

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

如何通过特定字段对has_many进行排序

我有3种型号:member,team,和team_enrollment.结构如下:

class Member < ApplicationRecord
  has_many :team_enrollments    
  has_many :teams, -> {order 'team_enrollments.termination_date DESC NULLS LAST'}, through: :team_enrollments
end

class TeamEnrollment < ApplicationRecord
  belongs_to :team
  belongs_to :member
end

class Team < ApplicationRecord
    has_many :team_enrollments
    has_many :members, through: :team_enrollments
end
Run Code Online (Sandbox Code Playgroud)

我试图做到这一点,当有人从一个成员(如此Member.first.teams)调用一个团队时,团队termination_date按照team_enrollments表中存在的属性按降序排序.我也想要它,如果它termination_date是零,它在订单的最后.我认为has_many :teams, -> {order 'team_enrollments.termination_date DESC NULLS LAST'}, through: :team_enrollments上面的那条线会起作用,但事实并非如此.它似乎对订单没有影响.我该怎么改变?

顺便说一句,我在本地和生产中使用postgres.

activerecord ruby-on-rails has-many-through rails-activerecord ruby-on-rails-5

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

Rails - 刷新或多次访问后查看完整的白色

我有一个视图页面,在我访问它几次后会随机变成一个空白页面.如果我在视图中更改了某些内容,它会暂时恢复正常,但经过几次页面访问后,该页面将再次变为白色.此外,它只发生在Safari中.以下是页面的控制器操作:

class ProjectsController < ApplicationController
    def show_current_projects_to_freelancer
        if current_user.type == 'Student'
            @projects = current_user.projects
            @schedules = current_user.projects.collect {|project| project.schedule}
        else
            redirect_to applicants_path, notice: 'Only Freelancers have access to this page.'
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

有两种模式:Schedule和Project.计划belongs_To项目和项目has_one计划.计划和项目的路线嵌套如下:

get 'projects/current', to: 'projects#show_current', as: :current_freelancer_projects
resources :projects do
      resources :schedules
end 
Run Code Online (Sandbox Code Playgroud)

我已经多次改变了我的看法.无论视图中是否有内容或没有内容,都会发生这种情况.以下是该视图现在的样子:

<div style="color: black;">
<h3>Current freelancer Projects</h3>
    <table>
        <tr>
            <td>Project Name</td>
            <td>Employer Name</td>
            <td>Date of Bid</td>
            <td>rating</td>
            <td>Bid</td>
            <td>Tags</td>
            <td>Make Schedule</td>
        </tr>
    <% @projects.each do |project| %>
        <tr>
            <td><%= project.title %></td>
            <td><%= project.employer.email %></td> …
Run Code Online (Sandbox Code Playgroud)

safari ruby-on-rails erb ruby-on-rails-4 rails-activerecord

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

rails .order 方法不起作用

出于某种原因, order 方法在我的代码中不起作用。如果我在模型中这样做:

def apple
    @tasks_array = self.tasks.to_a
end
Run Code Online (Sandbox Code Playgroud)

使用上面的代码,返回一个数组。但如果我这样做:

def apple
    @tasks_array = self.tasks.order('order_number').to_a
end
Run Code Online (Sandbox Code Playgroud)

然后

[]
Run Code Online (Sandbox Code Playgroud)

被退回。这是应该返回的数组,它与我编写的第一个代码块一起返回:

[#<Task id: 145, title: "task 1", content: "", created_at: "2013-12-18 18:44:31",
   updated_at: "2013-12-18 20:21:11", schedule_id: 79, amount: nil, 
   time_frame: "2013-12-19 15:00:00", state: "complete", denied: 3,
   order_number: 0>, #<Task id: 146, title: "Task 2", content: "",
   created_at: "2013-12-18 18:44:31", updated_at: "2013-12-18 20:24:06",
   schedule_id: 79, amount: nil, time_frame: "2013-12-27 10:00:00",
   state: "complete", denied: 1, order_number: 1>] 
Run Code Online (Sandbox Code Playgroud)

我也试过取出 .to_a 但它仍然不起作用。

ruby postgresql ruby-on-rails ruby-on-rails-4

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