为has_many关系创建方法是在Ruby on Rails框架中,为两个模型之间的关系创建方法。在这种情况下,一个模型可以拥有多个另一个模型的实例。例如,一个博客可以有多个文章。
在这种情况下,我们可以创建一个名为Post
的模型,并将其与Blog
模型建立has_many关系。以下是如何在Ruby on Rails中创建方法的示例:
blog.rb
模型文件中,添加以下代码:class Blog< ApplicationRecord
has_many :posts
end
post.rb
模型文件中,添加以下代码:class Post< ApplicationRecord
belongs_to :blog
end
blogs_controller.rb
控制器文件中,添加以下代码:class BlogsController< ApplicationController
def show
@blog = Blog.find(params[:id])
@posts = @blog.posts
end
end
posts_controller.rb
控制器文件中,添加以下代码:class PostsController< ApplicationController
def create
@blog = Blog.find(params[:blog_id])
@post = @blog.posts.build(post_params)
if @post.save
redirect_to blog_path(@blog)
else
render 'new'
end
end
private
def post_params
params.require(:post).permit(:title, :content)
end
end
show.html.erb
视图文件中,添加以下代码:<h1><%= @blog.title %></h1>
<p><%= @blog.content %></p>
<h2>Posts</h2>
<ul>
<% @posts.each do |post| %>
<li>
<h3><%= post.title %></h3>
<p><%= post.content %></p>
</li>
<% end %>
</ul>
这样,我们就为has_many关系创建了方法,并可以在Ruby on Rails应用程序中使用这些方法来显示博客及其相关的文章。
领取专属 10元无门槛券
手把手带您无忧上云