Ruby on Rails模型关系

时间:2018-07-26 18:16:02

标签: ruby-on-rails devise associations admin relationships

我有一个正在与Devise一起为用户和管理员创建的应用程序,并且我有一个管理仪表板,我试图在其中构建上面贴有帖子的页面。 Page资源非常简单,因为它在表中仅具有其id键和一个name string属性。 posts表具有page_id作为外键,并且具有title:string和content:text属性。我在模型看起来像这样的地方建立了关联:

class Page < ApplicationRecord
 has_many :posts
end

class Post < ApplicationRecord
 belongs_to :page
end

,控制器如下所示:

class Admin::PostsController < Admin::AdminController

def create
 @admin_page = Admin::Page.find(params[:page_id])
 @admin_post = @admin_page.posts.build(params[admin_page_post])
if @admin_post.save
 redirect_to admin_path
else render 'new'
end

结束

private
# Use callbacks to share common setup or constraints between actions.

def admin_page_post
  params.require(:post).permit(:title, :content, :page_id)
end
# Never trust parameters from the scary internet, only allow the white list through.

结束

表格如下

<%= simple_form_for(@admin_post, url: admin_page_posts_path) do |f| %>
 <%= f.label :title %> 
 <%= f.text_field :title %>
<b />
 <%= f.label :content %>
 <%= f.text_area :content %>
 <%= f.submit %>
<% end %>

它使用:page_id的外键在posts表中创建一个对象,但是title和content属性为nil。我是不是在做控制器创建动作错误,也许我的关联错误,或者我的表格不正确或者这三者的结合?我是Rails开发的新手,所以任何反馈都将是有用的。谢谢!

0 个答案:

没有答案