Я пытаюсь реализовать функцию в своем приложении, где пользователь отправляет сообщение вместе с изображением.
Это что-то похожее на то, что есть в www.diasp.org
.
IРабота с довольно устаревшей конфигурацией Rails 2.0.2 и Ruby 1.8.7, которые работают на ОС Ubuntu 10.04 для конкретных проектов.
Изначально я обнаружил проблему в поиске подходящего плагина для paperclip, который быудовлетворяйте вышеуказанным требованиям конфигурации.
Я наконец-то использую этот коммит paperclip: -
https://github.com/thoughtbot/paperclip/commit/d177c8f838458348a9f4d1fe41918c5bd99a989c .
Мне удалось успешно реализовать базовый POC без каких-либо проблем с этим плагиноми подумал, что пришло время сделать то же самое в моем приложении для проекта.
Текущая проблема, с которой я сталкиваюсь, заключается в том, что при отправке почтового сообщения я не могу понять, где я ошибаюсь, как с точки зрения того, чтопрепятствуя передаче фотографии в качестве параметра для атрибута group_post, которым я пользуюсь.
У меня все это в паритетеtial .... Часть кода, которая будет принимать изображение и сообщение, выглядит следующим образом ...
<%if @current_user.is_an_existing_member_of_group(@investor_group)%>
<%form_for :group_post, :url => {:action => :post_message, :id => params[:id]},:html => {:multipart => true, :id => 'new_post'} do |f| -%>
Start Discussion:<%=f.text_field :message%>
<%=f.file_field :photo%>
<%=f.submit "Post" %>
<%end%>
<div id = "latest_post"> </div>
<%for a in @group_all_posts %>
<%= image_tag a.photo.url %>
<%= a.message %> by <%= Investor.find(a.post_by).first_name %> <div class ="contentdispgrp" id="style_chck"> <%= distance_of_time_in_words(a.created_at,Time.now) %> ago </div><br/><br/> <hr/>
<%end%>
Я на самом деле пытался сравнить это с файлом представления в моем POC, который успешно загрузил изображения дляу меня и то же отображается.Файл new.html.erb моего POC выглядит следующим образом: -
<h1>New post</h1>
<%= error_messages_for :post %>
<% form_for :post, :url => {:action => :create}, :html => { :multipart => true } do |f| %>
<p>
<b>Message</b><br />
<%= f.text_field :message %>
</p>
<%= f.file_field :photo%>
<p>
<%= f.submit "Create" %>
</p>
<% end %>
<%= link_to 'Back', posts_path %>
Проблеск того, что передается как часть параметров в соответствии с журналом, выглядит примерно так во время работы POC: -
Дело 1
Processing PostsController#create (for 127.0.0.1 at 2011-05-20 15:55:00) [POST]
Session ID: BAh7ByIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNo%0ASGFzaHsABjoKQHVzZWR7ADoMY3NyZl9pZCIlZjQ5NWYyNDAxNDVjNmZkOGU5%0AZjM0ZjJjOTZlOTRlM2I%3D--a30d15cac639bde46b5d57218084da993caf094b
Parameters: {"commit"=>"Create", "post"=>{"photo"=>#<File:/tmp/CGI20110520-5743-u5iauq-0>, "message"=>"abc1"}, "authenticity_token"=>"1c19641bd05adb24157f5f1d04b4c8e072cb7ebe", "action"=>"create", "controller"=>"posts"}
Post Columns (0.000975) SHOW FIELDS FROM `posts`
SQL (0.000199) BEGIN
Post Create (0.000332) INSERT INTO `posts` (`created_at`, `photo_file_size`, `photo_file_name`, `updated_at`, `photo_content_type`, `photo_updated_at`, `message`) VALUES('2011-05-20 15:55:00', 83794, 'Water lilies.jpg', '2011-05-20 15:55:00', 'image/jpeg', NULL, 'abc1')
SQL (0.059184) COMMIT
Redirected to http://localhost:4004/posts/22
Completed in 0.33966 (2 reqs/sec) | DB: 0.06069 (17%) | 302 Found [http://localhost/posts]
Дело 2
Проблеск того, что передается как часть параметров в видесогласно журналу выглядит примерно так с запущенным приложением проекта: -
Processing GroupsController#post_message (for 127.0.0.1 at 2011-05-20 15:42:52) [POST]
Session ID: 0d806dc029197b7db11552a447dd329e
Parameters: {"group_post"=>{"message"=>"hi5"}, "action"=>"post_message", "id"=>"10", "controller"=>"groups"}
Investor Columns (0.002125) SHOW FIELDS FROM `investors`
Investor Load (0.000173) SELECT * FROM `investors` WHERE (`investors`.`id` = 397) LIMIT 1
InvestorGroup Columns (0.001198) SHOW FIELDS FROM `investor_groups`
InvestorGroup Load (0.000114) SELECT * FROM `investor_groups` WHERE (`investor_groups`.`id` = 10)
InvestorGroup Load (0.000207) SELECT investor_groups.* FROM investor_groups INNER JOIN investor_group_members ON investor_groups.id = investor_group_members.investor_group_id WHERE ((investor_group_members.investor_id = 397))
GroupPost Columns (0.002383) SHOW FIELDS FROM `group_posts`
SQL (0.000111) BEGIN
GroupPost Create (0.000342) INSERT INTO `group_posts` (`post_by`, `created_at`, `photo_file_size`, `photo_file_name`, `updated_at`, `investor_group_id`, `photo_content_type`, `message`) VALUES(397, '2011-05-20 15:42:53', NULL, NULL, '2011-05-20 15:42:53', 10, NULL, 'hi5')
SQL (0.069269) COMMIT
Rendering groups/post_message
Investor Load (0.000194) SELECT * FROM `investors` WHERE (`investors`.`id` = 397)
Completed in 0.13884 (7 reqs/sec) | Rendering: 0.00845 (6%) | DB: 0.07612 (54%) | 200 OK [http://localhost/us/groups/post_message/10]
Пожалуйста, обратите внимание на разницу между Case 1 и Case 2 .
Код в моей модели выглядит следующим образом: -
class GroupPost < ActiveRecord::Base
has_many :group_comments
belongs_to :investor_group
validates_presence_of :message
has_attached_file :photo #, :styles => { :medium => "300x300>", :thumb => "100x100>" }
end
Я хотел бы упомянуть об этом, что-то странное, что я наблюдал ранее при работе с больницами ... что-то, чего я никогда не ожидал, будет вести себя так..
Я реализовал автоматическое завершение ранее, используя частичное, но как только я добавил комментарий к этому частичному документу, кем был добавлен этот файл и о чем этот файл ... Верите или нет .. Автозаполнениеперестал работать на меня ... !!,Это сработало вскоре после удаления комментариев.Синтаксис комментариев, которые я использовал, был <!-- -->
Могу ли я ожидать аналогичного поведения в этом случае по какой-то причине, о которой я в настоящее время не знаю ... ??
Я понимаю, что не могуя ожидаю, что многое работает для меня с версией коммита, которую я использую, но поскольку базовая функциональность работает в POC, мне интересно, что же мешает этому работать в приложении моего проекта ...
Пожалуйста, помогите мнегде я могу ошибаться ... Это срочно ..
Пожалуйста, дайте мне знать, если вам нужна какая-либо другая часть кода ..
Спасибо большое ...