0
我有這樣一個模型:在沒有控制器的模型中是否需要質量保護?
class Page < ActiveRecord::Base
attr_accessible :page_id, :name, :page_url, :username
end
,它並沒有相關的控制器,但在其他控制器我執行此代碼:
fgraph = Koala::Facebook::API.new(ftoken)
@pages = fgraph.fql_query("select XXX from pages where xxx")
@pages.each do |p|
newpage = Page.find_or_initialize_by_page_id("#{p["page_id"]}")
newpage.update_attributes(
name: p["name"],
username: p["username"],
page_url: p["page_url"]
)
end
最後一行更新我的模型與facebook數據的數據。因爲我已經獲得了動作方法中的信息,所以我認爲這是不可能的,因爲我已經獲得了動作方法中的信息,但是我真的很喜歡使用rails,我想確認我的supossition是否屬實。
如果該方法修改列表中提及的屬性之外的任何屬性,則rails將引發錯誤。如果不是,所有工作都會很好。它與控制器無關。您不能在代碼庫中的任何位置修改不可訪問的屬性。 – Arindam 2013-02-12 21:00:51
此方法正在修改Page類中的所有屬性。他們必須是可以訪問的,因爲我需要在這個班上寫一些來自Facebook的信息。在代碼中沒有PagesController或pages#update方法,只有這個。 – 2013-02-13 06:28:27
這是一個極好的答案:[http://stackoverflow.com/questions/2652907/what-is-difference-between-attr-accessibleattributes-attr-protectedattrib/2652919#2652919][1] [ 1]:http://stackoverflow.com/questions/2652907/what-is-difference-between-attr-accessibleattributes-attr-protectedattrib/2652919#2652919 – 2013-02-13 06:55:09