因此,我为名为Club的模型制作了一个脚手架,然后删除了一个名为:title
的列,并添加了一个名为:name
的列。然后,我将路线编辑为only: [:index, :show]
。我进入了控制器代码并做到了:
before_action :set_club, only: [:show]
# GET /clubs
# GET /clubs.json
def index
@social = Club.where tag: "Social"
end
# GET /clubs/1
# GET /clubs/1.json
def show
end
然后我这样播种数据库:
Club.create([{ name: 'Club 1' }, {role: 'officer'}, {tag: 'Social'}, {description: 'asd'}])
Club.create([{ name: 'Club 2' }, {role: 'member'}, {tag: 'Social'}, {description: 'efg'}])
并将视图设置为:
<h2>SOCIAL</h2>
<% @social.each do |project| %>
<div class="club">
Project: <%= project.name %>
</div>
<% end %>
和
<strong>name:</strong>
<%= @club.name %>
<strong>Description:</strong>
<%= @club.description %>
<strong>Role:</strong>
<%= @club.role %>
<strong>Tag:</strong>
<%= @club.tag %>
<br />
<%= link_to 'Back', clubs_path %>
<br />
但是,在呈现时,名称,标签等的值不会始终显示出来。
以下是/ clubs,/ clubs / 1和/ clubs / 2的屏幕截图:
似乎某些字段呈现的不一致。我在索引路由上得到的名称为零,而其中只有一个在显示路由上显示了名称。知道是什么原因造成的吗?好像找到了两个俱乐部,因为它两次打印“项目:”。
PS:我的schema.rb:
ActiveRecord::Schema.define(version: 20180630182744) do
create_table "clubs", force: :cascade do |t|
t.text "description"
t.string "tag"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "name"
t.string "role"
end
end
编辑:pre_action如下:
def set_club
@club = Club.find(params[:id])
end
更新:似乎正在读取每个字段,因为它是自己的数据库条目。有了上面显示的种子,我实际上可以遍历clubs/1
到8
,每个字段都填写有一个字段...
答案 0 :(得分:0)
我的seed.rb设置错误,我传入的是散列数组,而不是数组中的单个哈希。更正为:
Club.create([{ name: 'Club 1', role: 'officer', tag: 'Social', description: 'asd'}])
Club.create([{ name: 'Club 2', role: 'member', tag: 'Social', description: 'efg'}])
请注意,如何散列所有clubs字段。