我想做的是得到
最后插入id
然后将其插入另一个表中,但这样做时会出现此错误(我不知道这样做是否正确)
ActiveModel::UnknownAttributeError(MessagePicture的未知属性'content'):#这是从控制台复制的
MessagePicture的未知属性“内容”。#从浏览器中复制,并突出显示此数字
@message=当前用户。信息。建筑留言和图片。生成(消息参数)
Message_controller类的新建和创建方法
def new
@message = current_user.messages.build if logged_in?
@reciever = User.find_by(params[:id])
end
def create
#@msg = Message.new(user_params)
@message = current_user.messages.build.message_pictures.build(message_params)
if @message.save
if @message[:picture].present?
# Send this to the message model for insertion with the @message_id and from the picture model, insert it to the
add_msg_pic(msg = [@message.id,@message[:msg_img_url]])
end
flash[:success] = "Message sent"
redirect_to messages_path
else
flash.now[:danger] = "Message not sent"
render 'new'
end
end
这是
消息参数方法
def message_params
params.require(:message).permit(:content, :receiver, :sender, :archive, message_pictures_attributes:[:msg_img_url, :message_id])
end
这是
消息类(模型)add_msg_pic方法
def add_msg_pic(msg)
msg.message_pictures.each.do |m|
m.message.id = nil
message_pictures << m
end
This is the view page
<h1>Compose a new message</h1>
<div class="row">
<div class="col-md-6 col-md-offset-3">
<%= form_for(@message, html: { multipart: true }) do |f| %>
<%= render 'shared/error_messages', object: @message %>
<%= f.label :content %>
<%= f.hidden_field :receiver, value: @reciever %>
<%= f.hidden_field :sender, value: current_user.id %>
<%= f.text_area :content, size:"20x15" %>
<%= f.submit "Send message", class: "btn btn-primary" %>
<span class="picture">
<%= f.fields_for :message_pictures do |mp| %>
<%= mp.file_field :msg_img_url, accept: 'image/jpeg,image/gif,image/png' %>
<% end %>
</span>
<% end %>
<%= button_to "Save message", archive_messages_path %>
</div>
</div>