【问题标题】:posting a tweet via a form in rails通过 Rails 中的表单发布推文
【发布时间】:2012-01-14 21:52:38
【问题描述】:

好的,所以我正在努力使用一个表格来将推文发布到我的 Twitter 帐户。 我正在使用 gem 'omniauth-twitter' 和 gem 'twitter'。

我的表单没有将其内容发送到位于 products_controller.rb 中的 Twitter.update(),我不知道为什么。

这是我到目前为止的代码......

来自我的 index.html.erb

<%= form_tag do %>
<fieldset>
    <legend>140 char limit</legend>
    <div>
        <label for="mytweet">mytweet:</label>
        <%= text_field_tag :my_tweet, params[:my_tweet] %>
    </div>
    <div>
        <%= submit_tag "tweet" %>
    </div>
</fieldset>
<% end %>

来自我的 products_controller.rb

def tweetfunc
if param[:tweet] != nil then
  Twitter.update(param[:tweet])
else
  #TODO display an error message
end

结束

在我的 routes.rb 中

controller :products do
post 'tweet' => :tweetfunc

结束

....有什么想法吗?

【问题讨论】:

  • 我的表单没有将其内容发送到位于 products_controller.rb 中的 Twitter.update(),我不知道为什么。

标签: ruby-on-rails


【解决方案1】:

检查您发布的 index.html.erb 的第一行:

<%= form_tag do %>

然后在其中输出一个指向您的控制器的网址,如下所示:

<%= form_tag tweet_products_path do %>

你应该没事的。

【讨论】:

    【解决方案2】:

    在控制器中:

    Twitter.update(params[:my_tweet]) if params[:my_tweet].present?
    

    除此之外,我强烈建议您遵循 REST 架构,并拥有一个符合 ActiveModel 的 Tweet 类,并在该类的实例上使用表单构建器助手,即。 for_for @tweet do |f| ...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多