嘿,这可能是一个非常简单的问题,但我似乎无法显示我的show.html.erb页面,我是一个真正的初学者。这是用铁轨上的红宝石制成的。这是我的代码:
Post.rb
class Post < ActiveRecord::Base
attr_accessible :artist
has_many :songs
end
Song.rb
class Song < ActiveRecord::Base
attr_accessible :lyric, :name, :song_id
belongs_to :post
end
CreatePost迁移
class CreatePosts < ActiveRecord::Migration
def change
create_table :posts do |t|
t.string :artist
t.string :song
t.timestamps
end
end
end
CreateSong Migrate
class CreateSongs < ActiveRecord::Migration
def change
create_table :songs do |t|
t.text :lyric
t.string :name
t.integer :song_id
t.timestamps
end
end
end
show.html.erb
<center><h1><%= @post %></h1></center>
<p> Songs: </p>
<% @post.song.song_id.each do |s| %>
<p>
<%= s.name %>
</p>
<% end %>
<% form_for [@post, Song.new] do |f| %>
<p>
<%= f.label :name, "Artist" %><br />
<%= f.text_field :name %><br />
<%= f.label :body, "Song Name:" %><br />
<%= f.text_field :body %>
</p>
<p>
<%= f.submit "Add Song" %>
</p>
<% end %>
答案 0 :(得分:0)
看起来你错过了控制器。
Ruby on Rails中的控制器对模型和视图之间的数据进行编组。
我建议你可能想在app / controllers文件夹中创建一个控制器,如:
class PostsController < ApplicationController
def show
@post = Post.find(params[:id])
end
end
您还需要确保在路径文件中设置了帖子资源。
在config / routes.rb文件中,您可以输入
resources :posts
这告诉Rails / posts url引用了posts控制器。
RoR入门对于所有各种移动部件来说可能有点棘手。我强烈推荐railscasts.com作为简短的教程片段。同样peepcode.com以获得更深入的指示。