我在种子文件中有一些代码,我想改变它,以便在我多次运行种子命令时不会创建重复的记录.有没有办法从我的种子文件中调整下面的代码,以便这可能?除非我弄错了,否则find_or_create_by方法似乎不起作用.
data_file = Rails.root.join('db/data/data.csv')
CSV.foreach(data_file) do |row|
TownHealthRecord.create(
city: row[0],
state: row[1],
country: row[2],
zip_code: row[3],
area_code: row[4]
)
end
Run Code Online (Sandbox Code Playgroud) 我想使用 Rails 更改数据库中多个列的数据类型。我已尝试以下代码,但收到错误“G::DuplicateColumn: ERROR: 关系“town_health_records”的列“geography”已存在”
我尝试创建一个新的迁移文件并运行 rake db:migrate ,如下所示:
class UpdateColumns < ActiveRecord::Migration
def change
change_table :town_health_records do |t|
t.string :geography
t.string :total_pop_year_2005
t.string :age_0_19_year_2005
t.string :age_65_up_year_2005
t.string :per_capita_income_year_2000
t.string :persons_below_200pct_poverty_yr_2000
t.float :pct_all_persons_below_200pct_poverty_year_2000
t.float :pct_adequacy_prenatal_care_kotelchuck
t.float :pct_c_sections_2005_2008
t.integer :num_infant_deaths_2005_2008
t.float :infant_mortality_rate_2005_2008
t.float :pct_low_birthweight_2005_2008
t.float :pct_multiple_births_2005_2008
t.float :pct_publicly_financed_prenatal_care_2005_2008
t.float :pct_teen_births_2005_2008
t.timestamps
end
end
end
Run Code Online (Sandbox Code Playgroud)
我只需要将以下各列的数据类型更改为字符串:
:total_pop_year_2005
:age_0_19_year_2005
:age_65_up_year_2005
:per_capita_income_year_2000
:persons_below_200pct_poverty_yr_2000
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的开发环境中设置一个简单的contact_us页面,用户可以使用我创建的表单发送查询.我有ActiveMailer和Contact模型/控制器/视图都设置但它似乎没有正常工作.有任何想法吗?我的日志似乎显示正在发送的邮件.
的ActionMailer
class ContactConfirmation < ActionMailer::Base
default from: "from@example.com"
def receipt(contact)
@contact = contact
mail to: 'myname@example.com',
subject: contact.subject
end
end
Run Code Online (Sandbox Code Playgroud)
收据
<%= @contact.first_name %> <%= @contact.last_name %>
Writes:
<%= @contact.description %>
Run Code Online (Sandbox Code Playgroud)
ContactsController
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new(contact_params)
if @contact.submit_contact_info
redirect_to users_path, notice: 'Submission successful. Somebody will get back to you shortly.'
else
render :new
end
end
protected
def contact_params
params.require(:contact).permit(:first_name, :last_name, :email, :subject, :description)
end
end
Run Code Online (Sandbox Code Playgroud)
联系型号
class Contact …Run Code Online (Sandbox Code Playgroud) 在一个例子中,所有者的关联是作为研究员:
class Owner < ActiveRecord::Base
has_many :buildings, dependent: :destroy
end
Run Code Online (Sandbox Code Playgroud)
关系的另一面:
class Building < ActiveRecord::Base
belongs_to :owner
end
Run Code Online (Sandbox Code Playgroud)
如果我要删除所有者,它是否会破坏相关的建筑物?如果删除所有者,如何指定依赖关系以便所有者和主键不再与任何建筑物相关联?
这个错误涉及什么?我无法弄清楚代码在哪里不正确?
用户Index.html.erb
<%= @events.all.each do |event| %>
<%= if current_user.activities.include?(event.activity) %>
<%= event.activity %>
<%= event.description %>
<%= event.start_time %>
<%= event.end_time %>
<%= event.num_attendees_requested %>
<%= event.location_name %>
<%= event.street_address %>
<%= event.city %>
<%= event.state %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
用户控制器
class UsersController < ApplicationController
def index
@users = User.all
@activities = Activity.all
@events = Event.all
end
def show
@user = current_user
@events = Event.all
@activities = Activity.all
end
Run Code Online (Sandbox Code Playgroud) 我试图用Ruby获取一个单词的所有字谜但我的代码不起作用,我只得到字符串'ant'的三个结果.任何帮助将非常感激.
class Anagram
attr_reader :word
def initialize(word)
@word = word.downcase
end
def anagram_maker
@word_bank = []
index = @word.length
minus_one = index - 1
while (index * minus_one) != 0
anagram = @word.split('').shuffle.join
@word_bank << anagram
index -= 1
end
@word_bank = @word_bank.uniq
end
def display
anagram_maker
if @word_bank.count > 1
@word_bank.each do |anagram|
puts anagram
end
else
puts "Not enough letters for an anagram"
end
end
end
Run Code Online (Sandbox Code Playgroud)
不知道还有什么可以尝试.
ruby ×3
postgresql ×2
actionmailer ×1
anagram ×1
associations ×1
controllers ×1
database ×1
dependencies ×1
email ×1
migration ×1
schema ×1
seeding ×1
views ×1