我在档案和联系之间有很多关系,因此他们有以下关系:
class Dossier < ActiveRecord::Base
has_and_belongs_to_many :contacts
Run Code Online (Sandbox Code Playgroud)
和
class Contact < ActiveRecord::Base
has_and_belongs_to_many :dossiers
Run Code Online (Sandbox Code Playgroud)
在Dossiers控制器显示方法中我有这个:
@dossier = current_user.company.dossiers.find(params[:id])
@dossier_contacts = @dossier.contacts
Run Code Online (Sandbox Code Playgroud)
但是当我请求显示视图时,我收到错误:
SQLite3::SQLException: no such table: contacts_dossiers: SELECT COUNT(*) FROM "contacts" INNER JOIN "contacts_dossiers" ON "contacts"."id" = "contacts_dossiers"."contact_id" WHERE "contacts_dossiers"."dossier_id" = 1
Run Code Online (Sandbox Code Playgroud)
该视图如下所示:
<li><%= I18n.t :dossier_nr_contacts %></li><li><%= @dossier_contacts.count.to_s %></li>
Run Code Online (Sandbox Code Playgroud)
我认为我已经设置了正确的关系,表存在,但我现在不知道为什么它会给出错误.有线索吗?
编辑:我做的迁移:
class CreateDossiersContactsJoinTable < ActiveRecord::Migration
def up
create_table :dossiers_contacts, :id => false do |t|
t.integer :dossier_id
t.integer :contact_id
end
end
def self.down
drop_table :dossiers_contacts
end
end
Run Code Online (Sandbox Code Playgroud) 我有一个projectuser数据的表单,但是当我编辑projectuser时,所选的projectuser保持为空,出了什么问题?这是代码:
= f.select :user_id, options_for_select(@users.map{ |u| [u.full_name, u.id] }, selected: @projectuser.full_name), include_blank: true
Run Code Online (Sandbox Code Playgroud) 我有一个Rails应用程序,我使用wicked_pdf生成PDF.这一切都很好并在本地工作,但是当推送到heroku时,PDF会渲染,但不应用样式表.
特别是对于PDF渲染,我有一个CSS文件:app/assets/stylesheets/pdf.css.scss.在form.pdf.haml我加载这样的样式表:
!!!
%html{lang: "en", "xml:lang" => "en", xmlns: "http://www.w3.org/1999/xhtml"}
%head
%meta{content: "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
= wicked_pdf_stylesheet_link_tag "pdf"
Run Code Online (Sandbox Code Playgroud)
如上所述,它在本地工作得很好,但是当推送到heroku时,我收到这个错误:
ActionView::Template::Error (No such file or directory - /app/public/pdf.css)
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能在heroku上完成这项工作?
编辑:我发现了这个Gihub repo https://github.com/jordan-brough/heroku-pdf,这是一个在heroku上使用wicked_pdf的示例应用程序.通过在请求PDF时调整environment.rb文件public夹中的css文件来帮助它真的很有帮助.
在我的 React.js 应用程序中,我使用 jquery.ajax方法从后端 API 检索信息。为此,我需要添加一个授权令牌作为标头,并添加了以下headers选项:
$.ajax({
url: this.props.source,
headers: { 'Accept':'application/json', 'Authorization':'Token 36d417' },
dataType: 'jsonp',
success: function(data) {
this.setState({data: data});
}.bind(this),
error: function(xhr, status, err) {
console.error(this.props.url, status, err.toString());
}.bind(this)
});
Run Code Online (Sandbox Code Playgroud)
但是我收到了401 Unauthorized服务器的响应。当我检查标题时,它们似乎没有被添加?
Remote Address:189.28.154.73:8080
Request URL:https://todos-api.com/api/v1/todos?callback=jQuery1100005772984796203673_1424179650018&_=1424179650019
Request Method:GET
Status Code:401 Unauthorized
Request Headersview source
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6,nl;q=0.4
Cache-Control:no-cache
Connection:keep-alive
Host:todos-api.com
Pragma:no-cache
Referer:https://todos-reactjs.io/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36
Run Code Online (Sandbox Code Playgroud) 我有2个模型:AvailableDates - > belongs_to:spec和Spec - > has_many:available_dates现在我有一个视图,我想要显示来自Spec和AvailableDates的数据,并且具有相同的friend_id属性.我可以用SQL做到这一点,它工作正常:
@invitees = AvailableDate.find_by_sql "SELECT d.friend_id, s.first_name, s.last_name, s.gender, s.birthdate, s.occupation, s.country, s.city FROM available_dates d, specs s WHERE d.friend_id = s.friend_id AND d.city = 'London'
Run Code Online (Sandbox Code Playgroud)
视图将如下所示,包含两个模型的数据:
<% @invitees.each do |invitee| %>
<tr>
<td><%=h invitee.first_name %></td>
<td><%=h invitee.last_name %></td>
<td><%=h invitee.gender %></td>
<td><%=h invitee.birthdate %></td>
</tr>
<% end %>
Run Code Online (Sandbox Code Playgroud)
但是,这并不觉得"像铁轨一样",所以我想这样做,同时保持视图中的代码不变:
@invitees = AvailableDate.find(:all, :conditions => ["country = ? and city = ? and start_date <= ? and end_date >= ?", country, city, date, date]) …Run Code Online (Sandbox Code Playgroud) 我有一个嵌套params的表单.在以下示例中,如何获取控制器中的"amount_whole"值?
Parameters: {"utf8"=>"?", "authenticity_token"=>"KCmBI6RLh0LdUsM2r5H1vhNykS1IXecFe5Lct+TuIGc=", "dec_declaration"=>{"declaration_nr"=>"SAL_2012_0001", "dec_declarationlines_attributes"=>{"0"=>{"amount_whole"=>"75"}}
Run Code Online (Sandbox Code Playgroud)
是这样的吗?
amount = params[:dec_declarations][:dec_declarationlines_attributes][:amount_whole]
Run Code Online (Sandbox Code Playgroud) 我有一个模型用户,它具有"角色"属性,可以用"员工"或"经理"填充.现在我想要一个经理拥有员工和员工属于经理的关系.
是否可以在同一模型中执行此操作?我能想到这样的事情:
has_many :employees, class_name: "User", :foreign_key => "employee_id"
belongs_to :manager, class_name: "User", :foreign_key => "manager_id"
Run Code Online (Sandbox Code Playgroud)
即使这样可行,我也怀疑它是最优雅的解决方案,因为你会有2个额外的外键.
我开发了一个Rails站点,我公司将其用于所有员工的内部使用.它已准备好上线,但我想确保它足够安全,以面对外部世界的大而糟糕.所以我想尝试破解它来测试网站的安全性.这有什么好的起点?你知道有什么好的教程或技巧吗?
当我vagrant ssh在Windows 10笔记本电脑上的项目中进行操作时,出现此错误:
vagrant@127.0.0.1: Permission denied (publickey)。
然后.vagrant/machines/default/virtualbox/private_key,当我删除并vagrant ssh再次执行操作时,便可以访问虚拟机。
但是当我退出虚拟机并执行“ vagrant halt”时,出现此错误:
==> default: Attempting graceful shutdown of VM...
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
translation missing: en.vagrant_ps.errors.powershell_error.powershell_error
在我看来,它试图添加我的SSH密钥,但是出了点问题。知道我该如何解决吗?
我已经设置了一个 Github Action 来运行我的 Rails 应用程序的测试,但我一直收到这个错误:
Run bundle exec rails db:prepare
rails aborted!
PG::ConnectionBad: fe_sendauth: no password supplied
Run Code Online (Sandbox Code Playgroud)
这是工作流 yml 文件:
name: CI
on: [push]
jobs:
test:
runs-on: ubuntu-latest
services:
db:
image: postgres:11
env:
POSTGRES_USER: postgres
POSTGRES_DB: bb_test
POSTGRES_PASSWORD: postgres
ports: ['5432:5432']
redis:
image: redis
ports: ['6379:6379']
options: --entrypoint redis-server
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install missing libs
run: sudo apt-get -yqq install libpq-dev
- name: Setup Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: 2.6.x
- name: Install …Run Code Online (Sandbox Code Playgroud)