我试图从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
我正在使用设计确认.我有一些自定义的东西,我需要覆盖设计的确认!方法,所以在我的用户模型中,我有以下方法覆盖它:
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
我试图加入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.我试过了,但没用.
请帮忙.谢谢.
出于某种原因,当我将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,从未收到过这个错误.我如何解决它?
我有两个模型: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
我正在尝试将 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)
问题是这会极大地拉伸图像,以至于在模拟器中无法识别。这是模拟器中的内容与实际图像相比的图片:
这是实际图像:
我该如何解决?
我正在使用 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 页面上,我才需要此验证。它不应该存在于站点的其他任何地方,所以我不想在模型中这样做。
出于某种原因,上面的代码不起作用。虽然表单字段确实显示了*
,但它仍然提交。如何仅在此页面上需要此输入?
我有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
我有一个视图页面,在我访问它几次后会随机变成一个空白页面.如果我在视图中更改了某些内容,它会暂时恢复正常,但经过几次页面访问后,该页面将再次变为白色.此外,它只发生在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) 出于某种原因, 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 ×2
activeadmin ×1
activerecord ×1
bcrypt ×1
bcrypt-ruby ×1
bundler ×1
callback ×1
devise ×1
erb ×1
formtastic ×1
gem ×1
heroku ×1
native-base ×1
oop ×1
postgresql ×1
react-native ×1
safari ×1
sprockets ×1