我正在尝试在 Mailboxer Gem 中发送带有附件的消息。
我的堆栈是:Rails 4 和 Ruby 2.1.1
但是,我可以看到已经支持使用 CarrierWave 的附件作为下面代码中的链接。
但是,我的设置完全一样。没有附件的普通邮件很好。
这是我的代码:
控制器 :
def create_message
if params[:user].present? & params[:message].present? & params[:subject].present?
current_user.send_message(User.find(params[:user]), params[:message], params[:subject])
redirect_to inbox_path
end
end
这是我的视图代码:
<%= form_tag do %>
<%= select_tag 'user', options_from_collection_for_select(User.all, :id, :fullname) %><br/>
<%= text_field_tag 'subject' %><br/>
<%= text_area_tag 'message' %><br/>
<%= submit_tag 'Send' %>
<% end %>
上面的代码工作正常并且消息正在发送,但是,当我尝试像这样将文件字段添加到它并尝试更改控制器代码时,附件没有上传:
def create_message
if params[:user].present? & params[:message].present? & params[:subject].present?
current_user.send_message(User.find(params[:user]), params[:message], params[:subject], true , params[:attachment])
redirect_to inbox_path
end
end
看法 :
<%= form_tag do %>
<%= select_tag 'user', options_from_collection_for_select(User.all, :id, :fullname) %><br/>
<%= text_field_tag 'subject' %><br/>
<%= text_area_tag 'message' %><br/>
<%= file_field_tag 'attachment' %>
<%= submit_tag 'Send' %>
<% end %>
我认为这是强参数的问题。在 Rails 3 中,我可以使用 attr_accessible。但是,我如何确保该attachment
字段没有被阻止和允许?
PS - 我安装了carrierwave gem,我什至多次重启了我的服务器。
谢谢。