2012-02-15 56 views
0

需要一些關於我的rails應用程序中的一些關聯的幫助。得到一個「不能批量分配受保護的屬性:rss_readers」的警告,並沒有找出問題所在。不能批量分配受保護的屬性

class Scraper < ActiveRecord::Base 
    attr_accessible :name, :link, :rss_reader_attributes 

    has_one :rss_reader 
    accepts_nested_attributes_for :rss_reader 

而且accociation:

class RssReader < ActiveRecord::Base 
    attr_accessible :title, :address, :content 

    belongs_to :scraper 

在軌安慰其工作正常。

> scraper = Scraper.new 
> scraper.build_rss_reader 
> scraper.attributes={:rss_reader_attributes=>{:address => "asdsad"}} 

但在控制器中,我得到了警告。

def new 
    @scraper = Scraper.new 
    @scraper.build_rss_reader 
    end 

    def create 
    @scraper = Scraper.new(params[:scraper]) 
    @scraper.build_rss_reader 

    if @scraper.save 
     redirect_to :show 
    else 
     render :new 
    end 

並且那是新的視圖

<%= form_for(@scraper) do |f| %> 
    <div class="field"> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </div> 
    <%= f.fields_for(@scraper.rss_reader) do |rss| %> 
    <div class="field"> 
     <%= rss.label :address %><br /> 
     <%= rss.text_field :address %> 
    </div> 
    <% end %> 
    <div class="actions"> 
    <%= f.submit "Submit" %> 
    </div> 
<% end %> 

我那吼聲是所有正確的,但我得到的警告。任何人有想法?

感謝

回答

1

基於this,您可能需要顯式地添加到RssReader:attr_accessible

+1

一個更好的主意並沒有工作。我將rss_reader添加到:attr_accessible。得到這個錯誤。 RssReader(#70085183525060)預計,得到ActiveSupport :: HashWithIndifferentAccess(#9179800) – mibo 2012-02-16 11:05:28

1

基本上,當你說某些屬性可訪問,那麼你不能質量分配該特定的屬性...所以你得到的錯誤是正確的。 你不能做object.update_attributes

what you can try is do 
@rssreader = rssreader.new 
@rssreader.address = 'the address' 
and then 
@scrapper.rssreader = @rssreader 

請參閱本關於attr_accessible Rails mass assignment definition and attr_accessible use

+0

感謝您的迴應。所以我想我會理解質量分配技術,所以這就是爲什麼我將rss_reader_attributes添加到父模型。因爲我想創建一個刮板對象和一個子對象,嵌套對象RSS閱讀器的形式。我認爲必須有一種方法來創建與rss_reader協調的刮板並編寫嵌套屬性。順便說一下,我的英語不太好,我希望我表達自己的理解。 – mibo 2012-02-16 19:32:18

+0

是啊,明白了。我的錯誤不在控制器或模型中。在我的新視圖中,我必須在字段field_for中使用:rss_reader而不是@ scraper.rss_reader。但我不明白爲什麼或在哪裏創建? – mibo 2012-02-16 19:44:01

相關問題