首先,我有一些使用form_for從另一個模型視圖的方式似乎每個人都說它的工作原理。即「from」character/index.html.erb'form_for(@character,@statistic)do ......「 是的,該方法看起來很簡單,我很樂意使用它,但它不會爲我工作,所以顯然即時做「IT」錯誤。以下是我目前的設置和問題。首先使用form_for是上班的噩夢,但更重要的是,每當我點擊提交表單時,它會以某種方式重複發佈帖子。鐵路,從form_for從另一個模型視圖重複張貼
events_controller.rb
...
def show
@event = Event.find(params[:id])
@message = @event.messages.build
@locations = Location.all
@city = Location.find_by_city(params[:city])
@messages = @event.messages.limit(5).order('created_at DESC')
end
...
Messages_controller.rb
...
def create
@message = Message.create(params[:message])
@message.event_id = params[:event_id]
@message.save
respond_to do |format|
format.js {@message}
end
end
...
事件/ show.html.erb
...
<%= form_for([@event, @message], :remote => true) do |f|%>
<%= f.text_field :msg %>
<%= f.hidden_field :name, :value => current_requester.name %>
<%= f.submit "send"%>
<% end %>
...
在你想知道的情況下,JS響應和作品罰款更新我指出的div。
Development.log
開始發表MessagesController# 「/事件/ 4 /郵件」 爲127.0.0.1,在太陽1月22日18時19分57秒 -0600 2012處理創建爲JS參數:{ 「commit」=>「send」,「event_id」=>「4」, 「authenticity_token」=>「OjW6XyzwCbCgXfu74Qy1VYjJm5 + YGIjw9f + yH + 2pi04 =」, 「utf8」=>「✓」,「message」=> { 「名稱」=> 「克里斯」, 「MSG」=> 「FD」}} SQL (0.1毫秒)BEGIN SQL(0.5毫秒)描述
messages
AREL(0.2ms的) INSERT INTOmessages
(created_at
,name
,updated_at
,event_id
,msg
)VALUES('2012-01-23 00:19:57','Chris','2012-01-23 00:19:57',NULL,'fd')SQL(85.4ms)COMMIT SQL(0.1ms)BEGIN
AREL(0.4ms)UPDATEmessages
SETupdated_at
='2012-01-23 00:19:57',event_id
= 4其中messages
。id
= 25 SQL(89.6ms) COMMIT呈現消息/ _message.html.erb(0.2ms)呈現 messages/create.js.erb(1.4ms)在198ms中完成200 OK(查看:8.6ms | ActiveRecord:176.5 ms)在Sun Jan 22 22:19:57 -0600上啓動POST「/ events/4/messages」爲127.0.0.1 2012 MessageController處理#create as JS參數:{「event_id」=>「4 「, 」authenticity_token「=>」OjW6XyzwCbCgXfu74Qy1VYjJm5 + YGIjw9f + yH + 2pi04 =「, 」utf8「=>」✓「,」message「=> {」name「=>」Chris「,」msg「=> (0.1ms)BEGIN SQL(0.3ms)描述
messages
AREL(0.2ms) INSERT INTOmessages
(created_at
,updated_at
,event_id
,msg
,name
)VALUES( '2012-01-23 0點19分57秒', '2012-01-23 0點19分57秒',NULL, '的fd', '克里斯') SQL(89.6ms)COMMIT SQL(0.1ms)BEGIN AREL (0.3ms)UPDATEmessages
SETupdated_at
='2012-01-23 00:19:57',event_id
= 4其中messages
。id
= 26 SQL(64.0ms)COMMIT Rendered messages/_message.html.erb(0.2ms)Rendered messages/create.js.erb(1.2ms)在174ms中完成200 OK(查看:7.1ms | ActiveRecord:154 。爲6ms) n0de @ IbeSuperMadtron:〜/工作區/ RadioMint /登錄$
添加在模型中,如果有人問。
class Message < ActiveRecord::Base
belongs_to :event
end
class Event < ActiveRecord::Base
include Geocode
belongs_to :disk_jockey
belongs_to :venue
has_many :song_requests
has_many :fresh_song_requests, :conditions => "played = false", :class_name => "SongRequest"
has_many :requested_songs, :through => :song_requests, :source => 'song', :order => 'songs.created_at ASC'
has_one :poll
has_many :messages
has_many :event_playlists
has_many :playlists, :through => :event_playlists
# I havent figured out the issue as to why messages dont show up when a validation is not met
# I have used the ':message => "" ' tailed to the end of these validations but they never show up.
validates_presence_of :name, :disk_jockey_id
validates :code, :uniqueness => true, :presence => true
...
end