Ruby on rails 如何/在何处适当调用控制器创建方法

Ruby on rails 如何/在何处适当调用控制器创建方法,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我刚刚整理了我的模型间关系,关于有很多:通过和属于;我还使用迁移将必需的id字段添加到数据库表中 我的问题是:用户点击链接后: <%= link_to "subscribe", new_subscription_path(feed_url: @feed.feed_url)%> 我只是不知道应该如何以及在何处调用我的create方法,因为我希望subscribe链接在我的subscriptions表中创建一个新行 此外,为了确保我的表格正确,以下是我的关联: User has_man

我刚刚整理了我的模型间关系,关于有很多:通过和属于;我还使用迁移将必需的id字段添加到数据库表中

我的问题是:用户点击链接后:

<%= link_to "subscribe", new_subscription_path(feed_url: @feed.feed_url)%>
我只是不知道应该如何以及在何处调用我的create方法,因为我希望subscribe链接在我的subscriptions表中创建一个新行

此外,为了确保我的表格正确,以下是我的关联:

User has_many :feeds, :through => :subscriptions, dependent: :destroy
|Users表具有列:id

Subscription belongs_to :feed
Subscription belongs_to :user
|订阅表包含以下列:id、用户id、提要id

Feed has_many :users, :through => :subscriptions

|Feeds表有一列:id

您刚刚打破了REST的整个概念)

Subscription belongs_to :feed
Subscription belongs_to :user
new
操作向用户显示一些表单,用于填写正在创建的资源的详细信息。甚至HTTP动词
GET
(您可以在日志中看到
new
操作)也表示它启动了一个不应修改任何资源的操作

如果您不需要任何表单,您可以为
create
操作创建直接的“访问器”。但是不要通过
链接到
,因为如果不启用javascript,用户将无法正确单击它。使用
按钮\u来

button_to 'Create', resources_path(your_params)

然后在
create
操作中定义创建本身。

您刚刚打破了REST的整个概念)

new
操作向用户显示一些表单,用于填写正在创建的资源的详细信息。甚至HTTP动词
GET
(您可以在日志中看到
new
操作)也表示它启动了一个不应修改任何资源的操作

如果您不需要任何表单,您可以为
create
操作创建直接的“访问器”。但是不要通过
链接到
,因为如果不启用javascript,用户将无法正确单击它。使用
按钮\u来

button_to 'Create', resources_path(your_params)

然后在
create
操作中定义创建本身。

尝试让我的按钮转到create not show,这似乎是默认设置,但谢谢!你有什么问题?你能更详细地描述一下吗?您必须编写类似于
按钮的内容来“创建”,订阅路径(feed\u url:@feed.feed\u url)
。哇,没关系,您是对的,我缺少订阅路径上的s,所以它没有正确路由。谢谢这正是我所想的)我很高兴你自己迈出了最后一步!
subscription\u路径
(不带“s”)将导致一个订阅视图。为了工作,您必须在其中传递
id
。很好,您传递了其他内容,因为否则您将遇到另一个错误,即订阅/some_id没有POST方法(与create方法关联)。这是合乎逻辑的:您在订阅
s
上创建对象,而不是在特定订阅上创建对象。我希望它能帮助你深入理解REST!试图让我的按钮去创建不显示,这似乎是默认的,但谢谢!你有什么问题?你能更详细地描述一下吗?您必须编写类似于
按钮的内容来“创建”,订阅路径(feed\u url:@feed.feed\u url)
。哇,没关系,您是对的,我缺少订阅路径上的s,所以它没有正确路由。谢谢这正是我所想的)我很高兴你自己迈出了最后一步!
subscription\u路径
(不带“s”)将导致一个订阅视图。为了工作,您必须在其中传递
id
。很好,您传递了其他内容,因为否则您将遇到另一个错误,即订阅/some_id没有POST方法(与create方法关联)。这是合乎逻辑的:您在订阅
s
上创建对象,而不是在特定订阅上创建对象。我希望它能帮助你深入理解REST!