0
我試着去建立一個簡單的環境軌道:紅寶石在經過外鍵的形式
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
我試圖建立一種環境,當一個網頁的「顯示」方法中包含一個「創造」的形式爲一個Micropost。
最初,Microposts只與會員關聯 - 並且這是正常工作(member_id在登錄時被設置爲一個cookie並且該cookie被堆疊到Micropost.build方法)。
這裏的問題是,我無法通過webpage_id - 我試圖將webpage_id設置爲一個cookie並傳遞它,但這並不好。目前我正在嘗試將webpage_id作爲隱藏變量傳遞。
的微柱控制器:創建
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
和網頁:秀觀:
<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被通過,但它不被保存和我得到的錯誤是:
「無法找到沒有ID的網頁」
任何幫助,將不勝感激:)
乾杯,
達摩
感謝邁克 - 我現在的問題是,我得到一個錯誤,與成員關聯的「構建」方法沒有定義。你可以像上面提到的那樣把一個外鍵作爲一個cookie和一個作爲一個關聯來傳遞? – 2011-03-30 02:32:56
您確定它與此答案有關嗎?我沒有對模型做任何事情。 – 2011-03-30 02:35:08
不要介意邁克 - 事實證明,我是一個Rails初學者和盲人:-P ... Microposts控制器中的一種類型。再次感謝您的幫助! – 2011-03-30 02:54:29