我在rails中使用祖先gem。当它被设置为模型时,它获取像parent,parent_id,children等属性。现在我有一个包含两个属性content和content_title的模型消息,我们可以设置parent_id但是问题是,当我尝试设置它们时,只有一个得到更新。这是我的代码。
“parent_id”正在“创建动作”中设置,其他两个属性也是如此。当我像这样更新它时,只有“parent_id”得到更新但是当我使用时
#@page = Message.new(message_params)
另外两个属性content和content_title会更新,而parent_id也不会更新。
class MessagesController < ApplicationController
layout false
def index
@messages = Message.all
end
def show
@message_id = Message.find(params[:id])
end
def new
@message = Message.new
end
def create
@page = Message.new(:parent_id => params[:parent_id],:content_title => params[:content_title],:content => params[:content])
#@page = Message.new(message_params)
if @page.save
flash[:notice] = "The Mesage was created succeffully"
redirect_to(:action => 'index')
else
render('new')
end
end
private
def message_params
params.require(:message).permit(:parent_id,:content_title,:content)
end
end
这是发送数据的视图文件
<div class="Pages new">
<h2> Create Pages</h2>
<%= form_for(:message, :url => {:action => 'create',:parent_id => @message_id}) do |f| %>
<table summary="Page form fields">
<tr>
<th>ParentID</th>
<td><%= f.text_field(:id) %></th>
</tr>
<tr>
<tr>
<th>Content Title</th>
<td><%= f.text_field(:content_title) %></th>
</tr>
<tr>
<th>Content</th>
<td><%= f.text_field(:content) %></th>
</tr>
</table>
<div class="form-buttons">
<%= submit_tag("Submit Form") %>
</div>
<% end %>
</div>
有没有办法同时设置它们。我做错了什么?
答案 0 :(得分:1)
对于任何想知道答案是什么的人。
def create
@page = Message.new(message_params)
@page.parent_id = params[:parent_id]
#@page = Message.new(message_params)
if @page.save
flash[:notice] = "The Mesage was created succeffully"
redirect_to(:action => 'index')
else
render('new')
end
end