作为前言,我已经完成了一些教程(即Michael Hartl),尽管我还是相当新手。原谅任何多云的术语。
我正在尝试在Rails 4中构建一个简单的应用程序,它执行以下操作:
用户登录应用程序(目前正在使用sign-in-twitter-link和路由)
get "/auth/:provider/callback" => "sessions#create"
get "/signout" => "sessions#destroy", :as => :signout
一旦<% if current_user %>
为真,我就会在视图中呈现部分,其中会有一个简单按钮列表。当用户单击按钮时,我希望应用程序代表current_user发布预设字符串。理想情况下,我会在ruby / rails中完成所有操作。
这些按钮功能是我挂断的地方。我已经阅读了一大堆文件,但似乎有很多相互矛盾和陈旧的答案。这里有一个我认为最接近的快速列表,但没有明确说明从视图中的简单按钮/链接发送推文:
有些人需要控制器,一个更健壮的oauth设置(我已经安装了捆绑软件并连接到dev.twitter应用程序,但没有超出密钥),以及其他任何东西。它让我转过身来,我还不够好,无法综合所有的信息。任何帮助和方向都会很棒。以下是应用中可能有用的其他一些文件。
class SessionsController < ApplicationController
def create
auth = request.env["omniauth.auth"]
user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]) || User.create_with_omniauth(auth)
session[:user_id] = user.id
redirect_to root_url, :notice => "Hi!"
end
def destroy
session[:user_id] = nil
redirect_to root_url, :notice => "Bye!"
end
end
和omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
provider :twitter, '_priv', '_priv'
end
答案 0 :(得分:0)
EEP!我是第二个链接(RichOnRails)的作者。您是否看过本教程中包含的示例应用程序?它几乎完全符合你的要求。如果推文是硬编码的,你可以通过几种不同的方式接近它。如果你看看tweets控制器,你会发现它需要一个名为'message'的参数。传递给该create方法的任何消息都将作为当前用户发送。
def create
current_user.tweet(twitter_params[:message])
end
最简单(但不一定是最佳)的方式来调整它以满足您的需求是为每条推文提供一个表单,并使用您希望发布的消息执行隐藏字段。该按钮成为该特定表单的提交(您可以添加远程:如果您想要保持页面不刷新,则为true,然后使用一些javascript来更新UI元素)。希望这会有所帮助。