最近我从Git中取出了一个我的回购.启动服务器后,我收到以下内容:缺少secret_token和secret_key_base.这可能会发生,因为我已经在我的.gitignore中包含了secrets.yml.
我目前的设置
许多在线资源声明我必须使用新密钥rake secret并将其添加到secrets.yml.将密钥放在secrets.yml内并重新启动rails服务器不起作用.
编辑:添加了下面的secrets.yml的内容.-04/30/15美国东部时间上午9:04
development:
secret_key_base: LONG KEY HERE
test:
secret_key_base: LONG KEY HERE
# Do not keep production secrets in the repository,
# instead read values from the environment.
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
Run Code Online (Sandbox Code Playgroud)
请知道这是在我居住地(不是Heroku)的本地服务器上设置的开发环境.
其他资源状态我需要在我的内部添加一个条目,secret_token.rb但我的项目中不存在此文件.
我的应用程序运行的唯一方法是,如果我要创建一个secret_token.rb文件并在其中添加以下任一项:
MyApp::Application.config.secret_token = if Rails.env.development? or Rails.env.test?
('x' * 30) # meets minimum requirement of 30 chars long
else
ENV['SECRET_TOKEN-']
end
Run Code Online (Sandbox Code Playgroud)
要么
MyApp::Application.config.secret_token = 'the …Run Code Online (Sandbox Code Playgroud) 有没有办法可以避免hidden_field将视图中的值传递给控制器的方法?出于安全原因,我更喜欢控制器方法.不幸的@variables是,不支持价值配对strong_parameters.
编辑6/18美国东部时间下午1:00
- 我已将
garages控制器重命名为appointmentscars_controller不再创造新的appointment(正式的garages).在该中创建新约会appointments_controller
我目前的结构
路线
Rails.application.routes.draw做
resources :techs, only: [:index, :show], shallow: true do
resources :cars, only: [:new, :create]
end
Run Code Online (Sandbox Code Playgroud)
资源:约会
#For searchkick
resources :cars, only: [:show] do
collection do
get 'search'
end
end
root "home#index"
end
Run Code Online (Sandbox Code Playgroud)
楷模
tech.rb
class Tech < ActiveRecord::Base
searchkick
has_many :appointments
has_many :customers, :through => :appointments
has_many :service_menus
has_many :services
has_many :cars
end
Run Code Online (Sandbox Code Playgroud)
service.rb
class Service < ActiveRecord::Base
belongs_to …Run Code Online (Sandbox Code Playgroud)