Ruby on rails 单击按钮时,如何在Rails中存储新条目?

Ruby on rails 单击按钮时,如何在Rails中存储新条目?,ruby-on-rails,Ruby On Rails,我的一个模型中有一个方法,调用该方法时,使用twitter gem获取一条tweet,并存储其中的一些部分。我希望能够从web界面到我的应用程序触发该操作。Rails实现这一点的方法是什么?我见过一些关于不从视图调用模型方法的引用,所以我应该在控制器中以某种方式执行此操作吗 我的方法(相关模型是赞助商和赞助商Tweet(因此我的模型名称不会与来自gem的Tweet冲突): 编辑: 我在我的赞助商控制器中创建了一个tweet方法: def tweet @sponsor = Sponsor.fi

我的一个模型中有一个方法,调用该方法时,使用twitter gem获取一条tweet,并存储其中的一些部分。我希望能够从web界面到我的应用程序触发该操作。Rails实现这一点的方法是什么?我见过一些关于不从视图调用模型方法的引用,所以我应该在控制器中以某种方式执行此操作吗

我的方法(相关模型是赞助商和赞助商Tweet(因此我的模型名称不会与来自gem的Tweet冲突):

编辑:

我在我的赞助商控制器中创建了一个
tweet
方法:

def tweet
  @sponsor = Sponsor.find(params[:id])
  @sponsor.create_tweet
end
def tweet
    Sponsor.create_tweet
end
并将以下内容添加到我的config/routes.rb:
匹配“tweet”,通过::post
添加到:“赞助商#tweet”

以及我认为的以下代码(我正在使用haml):

=按钮指向:tweet,tweet\u路径(@赞助商)

但是,单击按钮会导致以下错误:


找不到没有ID的赞助商

我很想听听其他人的答案,因为我现在想知道是否有这样一种方法可以绕过控制器

然而,我的看法是,由于Rails是一个MVC(Model-View-Controller)框架,我认为Rails实现您正在考虑的功能的方法可能只是正常地处理操作;通过控制器模型


如果我正确地假设您有一个按钮或链接,或者一些AJAX,它正在启动服务器端Twitter处理,那么我将为该URL设置路由,以指向控制器操作方法,然后该方法将调用您的模型方法
myModel.create_tweet

您的视图应该有一个发布到控制器中的特定路由。然后该控制器将调用模型中的方法。不知道应用程序的实际外观,下面是一个示例:

编辑包括更好的示例

视图(假设是赞助商视图):

您的模型将保持不变,除非您将方法更改为类方法,如下所示:

def self.create_tweet
    ...your code here...
end

因为这似乎与任何特定的赞助商无关,所以您将使用一个类方法,因此不需要类的实例来调用您的方法。也就是说,您似乎希望在某个时候获得一个类的实例…

好的,我认为这是有意义的。您是说这将发布到我赞助商控件中的tweet方法吗r?如果是,我是否需要将tweet_路径与赞助商关联?tweet?没错。如果您想要更具体的示例,请发布相关模型、视图和控制器。您可以帮助我更好地理解按钮吗?该代码生成一个带有value=“tweet”的输入。应该是这样吗?单击该按钮会导致此错误:
没有ID就找不到赞助商
我还应该提到这是我在config/routes.rb中输入的内容:
将“tweet”匹配到:“赞助商#tweet”,via::post
编辑您的问题并发布您的代码,我可以提供更多细节。
def tweet
    Sponsor.create_tweet
end
def self.create_tweet
    ...your code here...
end