Я пытаюсь настроить простую среду:
class Member < ActiveRecord::Base
has_many :microposts, :dependent => :destroy
end
class Webpage < ActiveRecord::Base
has_many :microposts, :dependent => :destroy
end
class Micropost < ActiveRecord::Base
attr_accessor :content
belongs_to :member
belongs_to :webpage
end
Я пытаюсь настроить среду, которая, когда метод 'show' веб-страницы содержит форму 'create' для Micropost.
Первоначально, микросообщения были связаны только с участниками - и это работало нормально (member_id устанавливается при входе в систему как cookie, и этот cookie укладывается в метод Micropost.build).
Проблемаздесь я не могу передать webpage_id - я попытался установить webpage_id в качестве cookie и передать его, но это не помогло.И в настоящее время я пытаюсь передать webpage_id как скрытую переменную.
Контроллер для Micropost: create
class MicropostsController < ApplicationController
def create
@micropost = current_member.microposts.build(params[:micropost])
@webpage = Webpage.find(params['webpage_id'])
@micropost.webpage = @webpage
if @micropost.save
flash[:success] = "Micropost created!"
redirect_to root_path
else
@feed_items = []
render 'pages/home'
end
end
end
и веб-страница: show View:
<table class="front" summary="For signed-in members">
<tr>
<td class="main">
<h1 class="micropost">What's up?</h1>
<%= form_for @micropost do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<div class="field">
<%= f.text_area :content %>
<input type="hidden" id="webpage_id" name="micropost[webpage_id]" value="<%= @webpage.id %>"/>
</div>
<div class="actions">
<%= f.submit "Submit" %>
</div>
<% end %>
</td>
</tr>
</table>
Каждый раз, когда я отправляю форму создания, я вижу пропущенный webpage_id, но он не сохраняется, и я получаю сообщение об ошибке:
"Не удалось найти веб-страницу без идентификатора"
Любая помощь будет принята с благодарностью:)
Ура,
Дамо