2013-01-07 18 views
2

我想在我看來add_feed中實現feedzirra(好的電視廣播:http://railscasts.com/episodes/168-feed-parsing),但我遇到了一些麻煩。我希望用戶能夠在網站上添加Feed。我認爲它應該非常簡單,我可以從控制檯添加Feed,但我還沒有想出如何從表單傳遞信息到方法。新手Ruby on Rails - 將字符串從視圖傳遞給方法?

我的模型看起來是這樣的(幾乎相同,從railscast一):

def self.update_from_feed(feed_url) 
    feed = Feedzirra::Feed.fetch_and_parse(feed_url) 
    add_entries(feed.entries) 
end 

def self.update_from_feed_continuously(feed_url, delay_interval = 15.minutes) 
feed = Feedzirra::Feed.fetch_and_parse(feed_url) 
add_entries(feed.entries) 
    loop do 
    sleep delay_interval 
    feed = Feedzirra::Feed.update(feed) 
    add_entries(feed.new_entries) if feed.updated? 
end 
end 

private 

def self.add_entries(entries) 
    entries.each do |entry| 
    unless exists? :guid => entry.id 
     create!(
     :name   => entry.title, 
     :summary  => entry.summary, 
     :url   => entry.url, 
     :published_at => entry.published, 
     :guid   => entry.id 
    ) 
    end 
    end 
end 

我真的不知道如何將字符串傳遞給我的self_update_from_feed(String)方法與我的控制器和視圖。我控制器目前看起來是這樣的:

def add_feed 
    @feed = String 
end 

def new 
    @feed = Feed.new 

    respond_to do |format| 
     format.html # new.html.erb 
     format.json { render json: @feed } 
    end 
    end 

    def edit 
    @feed = Feed.find(params[:id]) 
    end 

    def create 
    @feed = Feed.new(params[:feed]) 
    @feed.user_id = current_user.id 

    respond_to do |format| 
     if @feed.save 
     if @feed.url != nil 
      @feed.update_from_feed(:url) 
     end 

     format.html { redirect_to @feed, notice: 'Feed was successfully created.' } 
     format.json { render json: @feed, status: :created, location: @feed } 
     else 
     format.html { render action: "new" } 
     format.json { render json: @feed.errors, status: :unprocessable_entity } 
     end 
    end 
    end 

而且我認爲...好..

<%= form_for @feed do |f| %> 
    <%= ???%> 
<% end %> 

先感謝您的任何迴應。我通常會真的很好的幫助,在這裏計算器:)

回答

2

模型

class Feed < ActiveRecord::Base 
    attr_accessible :feed_url 
    after_create { |feed| FeedEntry.update_from_feed(feed.feed_url) } 
end 

控制器

class FeedsController < ApplicationController 

    def create 
     @feed = Feed.new(params[:feed]) 
     respond_to do |format| 
      if @feed.save 
      format.html { redirect_to @feed, notice: 'Feed was successfully created.' } 
      else 
      format.html { render action: "new" } 
      end 
     end  
    end 

end 

視圖

<%= form_for @feed do |f| %> 
    <div class="field"> 
    <%= f.label "Feed URL" %><br /> 
    <%= f.text_field :feed_url %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
    <% end %> 
+0

如若@feed =字符串仍然在我的add_feed視圖? 對不起,如果我沒有提到它,但我已經有一個創建單個帖子的方法。有沒有辦法解決?我會更新我的問題。 – OXp1845

+0

我有點不想創建一個「飼料」。我只是想將一些文本解析到模型中的一個方法中,並且該方法本身會創建提要 – OXp1845

+0

在執行此操作時遇到了另一個問題,但您通過此方法幫助了我很長時間 – OXp1845

相關問題