2013-01-07 1 views
2

피드보기 (good railcast : http://railscasts.com/episodes/168-feed-parsing)를 내보기 add_feed에 구현하려고하는데 문제가 있습니다. 사용자가 웹 사이트에있는 동안 피드를 추가 할 수 있기를 바랍니다. 콘솔에서 피드를 추가 할 수 있지만 아직 양식의 메소드에 정보를 전달하는 방법을 찾지 못했습니다.Newbie 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