[英]Call 'structure' to save in postgres using rails
我有一個“ publication”數據結構,而我在postgres中的表名是“ publications”。 我從流中獲得了一條推文,並根據TweetFetcher類對其進行了解析。 如何調用發布控制器將其保存到數據庫? PublicationController具有標准的Scrum功能(新建,創建,顯示,編輯...),其中create是:
def create
@publication = Publications.new(params[:publication])
if @publication.save
redirect_to :action => 'list'
else
@subjects = Subject.find(:all)
render :action => 'new'
end
end
我的推特代碼的一部分是
class TweetFetcher
def saveTweet(parsedTweet)
pT = JSON.parse(parsedTweet)
#save here. like this?
#PublicationController.create(parsedTweet)
end
end
在這種情況下,您不應該使用控制器,而是可以像這樣建立記錄:
class TweetFetcher
def saveTweet(parsedTweet)
pT = JSON.parse(parsedTweet)
publication = Publications.new
publication.sample_field = pT.sample_field
... # set additional attributes
publication.save
end
end
此外,這是一些與您的問題沒有直接關系的建議/信息,但您應該了解以下幾點:
你的模型的類名應該是單數,所以不是Publications
,應當Publication
。
方法和變量名應采用蛇形而不是駝峰式(即, save_tweet
代替saveTweet
或parsed_tweet
代替parsedTweet
)。
首選新的哈希語法,除非您當然使用的是低於1.9的Ruby版本。 看起來像{ key: value }
而不是{ key => value }
。
Ruby代碼的縮進通常為2個空格。
話雖如此,我會像這樣更改您的代碼:
PublicationsController#創建
def create
@publication = Publication.new(params[:publication])
if @publication.save
redirect_to action: 'list'
else
@subjects = Subject.find(:all)
render action: 'new'
end
end
TweeFetcher
class TweetFetcher
def save_tweet(tweet)
parsed_tweet = JSON.parse(tweet)
publication = Publication.new
publication.sample_field = parsed_tweet.sample_field
... # set additional attributes
publication.save
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.