Javascript 有一个响应按钮

Javascript 有一个响应按钮,javascript,ruby-on-rails,ruby,post,Javascript,Ruby On Rails,Ruby,Post,我是新来的,我需要一些建议 为了解释一般概念,用户可以创建私有的配方(post)。一旦这样,用户就可以发布帖子,添加价格和数量。一堵墙引用了所有最近发表的文章 现在,我打算制作一个按钮,将我的私人帖子发布到公共墙上。我不知道该怎么做。 理想的情况是,我可以为每一次新出版编辑一个价格和数字 我目前正在构建帖子、成分、评论、用户和用户档案 应该为这个操作生成一个脚手架,还是在我的帖子中添加新闻变量 如果要查看我的代码= 邮政署署长: class PostsController

我是新来的,我需要一些建议

为了解释一般概念,用户可以创建私有的配方(post)。一旦这样,用户就可以发布帖子,添加价格和数量。一堵墙引用了所有最近发表的文章

现在,我打算制作一个按钮,将我的私人帖子发布到公共墙上。我不知道该怎么做。

理想的情况是,我可以为每一次新出版编辑一个价格和数字

我目前正在构建帖子、成分、评论、用户和用户档案

应该为这个操作生成一个脚手架,还是在我的帖子中添加新闻变量

如果要查看我的代码=

邮政署署长:

class PostsController结束
restfull,您应该在
/wall/posts
上有一个
POST
操作:

  • 拍摄
    帖子的id、价格和照片
  • 按ID查找
    Post
  • 更新价格/照片参数
  • 将“public”标志设置为true
您还应该在
/wall/posts/:id
上执行一个
DELETE
操作:

  • 按ID查找
    Post
  • 将“public”标志设置为false
这将从墙上删除
帖子
,但不会删除
帖子本身

您可以将URL更改为
/wall
或更漂亮的东西,但我特意使其更面向资源,这样您就可以看到发生了什么

现在,按钮本身(基于您想要更多信息的事实,我认为这意味着您需要一个表单来配合它),将需要发布到
/wall/posts

所以,尽管如此,我认为这是一条“正确”的道路。但要回答我认为您要回答的问题,您还可以通过更新
routes.rb
,为当前控制器添加一个单独的方法:

resources :posts do
  post :publish, on: :member
end
这将产生一个类似于
/posts/1/publish
publish\u post\u path(@post)
的路由作为辅助方法。然后,您可以在posts\U控制器中创建一个名为
publish
的函数来处理该路由。现在,从功能的角度来看,这似乎更符合逻辑,但它打破了REST。但是,这是可以做到的。我认为上面的说法更符合逻辑,但这只是我的想法


作为练习,您还可以使用相同的方法创建“取消发布”路线,也可以使用该路线删除墙柱。

您可以为帖子添加一个标志,如
is_public
,并在创建新帖子时默认将其设为false,这意味着帖子是私有的

当用户想要公开帖子时,他们需要单击按钮:

<%= link_to "-  Pusher  - ", post_path(post, is_public: true), method: :put, class: "btn btn-success" %>

通过这种方式,您创建了一个链接作为引导按钮,该按钮引用到:

/posts/:id,方法::put

在您的
posts\u控制器中
您可以通过
params[:is\u public]
捕获此信息,并成功更新您的帖子


这样,您就可以在控制器中不使用任何附加功能的情况下保持RESTfull状态。

如果您澄清了问题,您将有更好的机会得到答案。你所说的响应按钮是什么意思?是的,对不起,我只是指一个按钮,我想知道你对我的建议,让我采取行动将帖子发布到公共墙上,因为有人尝试了很多方法。这张照片是我的个人资料控制器的展示,该按钮应自动更改private:boolean,并允许我编辑价格和数量,我的后租赁读数为“”和“”。它们的信息非常丰富,将帮助您了解如何询问堆栈溢出。正是我所寻找的,它工作得非常完美!谢谢
def go_public(params)
  @post = Post.find(id)
  @post.update_attributes(public_boolean: true)
end
resources :posts do
  post :publish, on: :member
end
<%= link_to "-  Pusher  - ", post_path(post, is_public: true), method: :put, class: "btn btn-success" %>