用这样的隐藏字段创建表单是否正确:
#show.html.haml
= semantic_form_for @reply do |f|
= f.hidden_field :sender, :value => @message.sender_id
= f.hidden_field :receiver, :value => @message.receiver_id
= f.hidden_field :title, :value => @message.reply_title
= f.input :content, :as => :text
= f.submit
#private_messages_controller.rb
def show
@message = PrivateMessage.find(params[:id])
@message.read! if @message.receiver == current_user
@reply = PrivateMessage.new
end
def new
@message = PrivateMessage.new
end
def create
@message = PrivateMessage.new params[:private_message]
@message.sender = current_user
if @message.save
redirect_to user_path(@message.receiver), :notice => "Wiadomość została wysłana"
else
render :new
end
end
要回复私信,还是有更好的方法呢?
答案 0 :(得分:1)
当然,这是正确的方法,因为您用作隐藏字段的所有变量都链接到特定的表单而不是某种会话,所以这是存储这些的好方法我认为
答案 1 :(得分:1)
我从经验中学到,隐藏的字段通常是不正确方法的标志。
在这种情况下,对于发件人,我会查看范围,在这种情况下使用关系,然后构造像current_user.message
我将使message_Type(值为private和public)成为flag的变量,而不是另一个Model。
所以我的方法可能是首先让模型正确,然后再建立它们。