尝试使用多种方法来实现巡视与唯一主机的关联。
主机(用户)仅使用设计使用电子邮件和密码设置,稍后将添加更多配置文件数据字段。
为游览创建了所有相关的基本设置(仅限标题和文本字段),但只是希望在进一步移动游览布局之前使关联正常工作。
只有在主持人登录后才能创建游览。
注意:有关于代码行的注释#,因为我试图查看这些是否有效但没有成功。
以下是我的工作结构:
host.rb
class Host < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
#before_save { |host| host.fullname }
validates :email, presence: true #length: {maximum: 50}
has_many :tours, dependent: :destroy
end
tour.rb
class Tour < ActiveRecord::Base
belongs_to :host
#validates :host_id, presence: true
validates :title, presence: true, length: { minimum: 5 }
end
migrate:devise_create_hosts.rb
class DeviseCreateHosts < ActiveRecord::Migration
def change
create_table(:hosts) do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at
## Rememberable
t.datetime :remember_created_at
## Trackable
t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip
## Confirmable
# t.string :confirmation_token
# t.datetime :confirmed_at
# t.datetime :confirmation_sent_at
# t.string :unconfirmed_email # Only if using reconfirmable
## Lockable
# t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
# t.string :unlock_token # Only if unlock strategy is :email or :both
# t.datetime :locked_at
t.timestamps
end
add_index :hosts, :email, unique: true
add_index :hosts, :reset_password_token, unique: true
# add_index :hosts, :confirmation_token, unique: true
# add_index :hosts, :unlock_token, unique: true
end
end
migrate:create_tours.rb
class CreateTours < ActiveRecord::Migration
def change
create_table :tours do |t|
t.string :title
t.text :text
t.references :host, index: true
t.timestamps null: false
end
add_foreign_key :tours, :hosts
add_index :tours, [:host_id, :created_at]
end
end
所以它的基础是我想将游览添加到主机并更新布局html。
主机 - show.html.erb - 这需要为相关的游览添加一些行。 所以在hosts / 1下我需要基础知识来显示标题和文本字段的巡视输出。
<div class="row">
<div class="col-md-3">
<div class="center">
</div>
<div class="panel panel-default">
<div class="panel-heading">Verification</div>
<div class="panel-body">
Email Address<br>
Phone Number here andmpre
</div>
</div>
</div>
<div class="col-md-9">
<h2><%= @host.email %></h2>
</div>
</div>
Tours - index.html.erb - 喜欢添加代码行来显示主机ID
<h1>Index TOURS</h1>
<%= link_to 'New Tour', new_tour_path %>
<table>
<tr>
<th>Title</th>
<th>Text</th>
</tr>
<% @tours.each do |tour| %>
<tr>
<td><%= tour.title %></td>
<td><%= tour.text %></td>
<td><%= link_to 'Show', tour_path(tour) %></td>
<td><%= link_to 'Edit', edit_tour_path(tour) %></td>
<td><%= link_to 'Destroy', tour_path(tour),
method: :delete,
data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
希望有一个人可以帮助我的快捷方式。 尝试过教程,但由于我是ROR的新手,有时他们会在我试图保持简单时感到困惑。